Recently I’ve gotten detoured once more from algorithmic composition by Microsoft XNA, the first 3D engine I’ve found that I really, really feel comfortable with. Â Unlike the previous one, it won’t do much of the work for me – no easy bloom/HDR, no easy model management. Â But it DOES expose powerful core functionality without having to jump through all the complicated hoops of D3D in c++.
In developing a terrain engine from scratch for my work in algorithmic world synthesis, I’ve begun testing different continuous level-of-detail (CLOD) systems. Â The easiest and most obvious CLOD system that comes to mind is quadtree-based terrain.
My initial quadtree CLOD engine is working pretty well, and can cut polys by 10 to 100 times, making decent framerates possible even with 1024×1024 heightmaps. Â Some problems with the quadtree engine:
- As with most CLOD engines, tiles experience tearing when they are adjacent to tiles of lower or higher detail; many fixes are known, but I have yet to implement one
- The quadtree structure is pretty huge (considering the recursion), I’m not sure just how much memory it takes up but I’m concerned that it may be too much
- Lots of overhead because of recursive processing
- Terrain must be a square with 2^n+1 vertices per side (perfect power of two plus one)
I’m thinking that some of the processing could be done in a shader to speed things up. Â If I can wrap my head around a few more HLSL tutorials, I may be able to try such a technique in the near future.
For now, a simple screenshot:

0 ResponsesLeave a comment ?