G'day UltraMedia,
Thanks for the nice comments mate, much appreciated.
The "semi procedural character generator for blender sounds cool, and going by some of those shots on your blog, they look nice too. Shame it's only for blender, but hay, I suppose Blender uses Lua (I think) for its base scripting language, so it's not impossible to get that thing in an engine I suppose, food for thought there.
As for the scalable nature of this thing, I have designed it to cater for a complete galaxy, not just a solar system, so I had to build in some major vertex position and precision hacks, dealing in light years and AUs, not just floats or doubles, even doubles can't handle those distances, doubles are fine for solar systems, but going out to 100s or even 100s of 1000s of light years, that's a different matter. I'm using 2 doubles to represent one axis range, so 6 doubles makes up a positional vector for a celestial body. At the local axis of a planetary body, I still need doubles in the cpu data, and then only at the last point in the chain when it all goes to the GPU, does it get converted back to floats, this way I can have very large planets that allow me to reach the surface to within 5mm, and still have perfectly smooth and steady placements. You can stand with your nose up against a tree trunk and rotate slowly, and there is no precision jittering problems (That took me a little while to work out and get working properly).
EDIT: Here's just a couple of shots showing the ground scale stuff I was talking about (remember how far that Gas Giant is away from the camera).
- Looking up to the sky with my chin almost against the tree trunk.
- And now with my cheek nearly touching the trunk of the same tree.
EDIT2: I was just looking at my code again and realized that the images above are not using the logarithmic depth buffer hack. Before I found out about that hack, I worked for a long time to get the best precision I could with just modifying the near and far clipping planes on the fly, using the standard Ogre commands in the setview() routine I have, that actually sets up all the parameters each frame for the planet to render itself.
So you can see, that you really don't need that hack to get reasonable results.
Ships, now that will be something I'm really looking forward to seeing. Can't wait mate.
Alex