Based on feedback from ChemicalR I'm cross posting all the things I've bookmarked in reguards to planet rendering here in the code forums. Sean O'Neil
's 4 2001 part series is considered a foundation for realistic large scale (planets on up) rendering. Most of these methods are now obsolete and replaced with faster methods and gpu shaders. His atmospheric scattering
method is still used often due to its relative simplicity, but it only produces earth atmospheres.Steven Wittens
2009 multipart series is frequently linked to as I've searched for best practices in creating planets using modern methods. It is based on a cube with mesh texture and normalizes the vertex points into a sphere. The advantage to this method is that conventional terrain LOD methods, often used in first person or third person games with vast outdoor scenes, can be used at a planatary scale. A simple normalization will result in a bunching of vertexes near the edges
. There is a proof
which will normalize the vertex in a way that results in polygons of equal area. Here is my vertex shader
that demonstrates both methods. Here
is a video of his method creating a small almost-sphere asteroid moon using an adaptive quadtree. Keep in mind that this object is, before shaders, a cube.
At Siggraph 2007 Maxis did several presentations
on the methods they used for spore. They used a brush method
to alter the heightmap. I haven't looked too much into this method yet but, combined with a quadtree-based storage system, might be a great way to handle player influences (craters, open pit mining) on a planet.
I bookmarked this
site a while ago. This site has 10 tutorials that focus more on procedural generation of various planet types. My project takes place in our solar system so I have not spent much time looking into procedural generation practices.
Random interlude: How homeworld did
its background.Eric Bruneton
has published a number of recent (2008-2012) on realistic rendering. One such is a precomputed atmospheric scattering shader which, while more complicated, is an improvement to oneil's. John Whigham
blog has covered assorted procedural planet generation elements.Another paper
(2011) 82 pages covering ROAM to river systems. Link to pdf at bottomMiguel Cepero
's blog coveres the development of his Voxel Farm engine, which is now being used in EQNext. His blog covers procedural generation as well as voxels.Proland
is a GPL3 "C++/OpenGL library for the real-time realistic rendering of very large and detailed 3D natural scenes on GPU"
There is another site in german with a lot of tutorials on procedural planets. Alas I could not find it.