Terrain Rendering
Especially large-scale terrain rendering is quite challenging. LOD (Level of detail) methods were invented to deal with large meshes by reducing the overall triangle count, while space partitioning methods such as quad trees cull unseen triangles.
Coordinate System
We have quite a few coordinate systems. The most important one are the world coordinate system, objects in this one will be rendered, and the matrix coordinate system. The latter one is used for energy space diffusion as well as heightmap lookups:
Space Partitioning
Resources
Prototyped
Integrated the quadtree from [http://www.codeplex.com/quadtreeload] into our framework. Had to change quite a lot to have it suiting our needs. Also fixed a few bugs... now it runs very nicely.
LOD
Resources
Prototyped
We experimented with a few stripped versions of the paper
Geometry Clipmaps to achieve an LOD implementation:
We got a lot of problems with popping as well as temporal aliasing. While we could get rid of some problems, a lot remained and since we turned from a camera with fixed to a camera with arbitrary orientation we had to look out for other approaches. We found some great implementations of game engines using terrains. All of them do not use LOD but rely on frustum culling. So we decided to give it a try...
Well, quadtrees with frustum culling are great... but LOD would give us so much better closeups. Since terraforming is a keyfeature, we decided to run some more tests on LOD and after reading tons of papers, I can assure its a mess. I spent 2 days to have a prototyp up and running with only 3 levels of LOD... none of them yet procedural... But I also think, that the hardest part is now behind us.
Geometry Supersampling
External Resources
--
ThaboBeeler - 25 Feb 2008