Doric column
David Pittman
HomePersonal ProjectsTeam ProjectsResume
Doric column

Patch-Based LOD Terrain

Terrain image



Quick facts:
Development time: 3 weeks
Engine: Original

This terrain level-of-detail system was the final component of my Direct3D/OpenGL engine I developed at the Guildhall.

Patch-based LOD terrain uses an array of preconstructed index buffers to draw terrain chunks at various resolutions. Each level of detail but the lowest requires sixteen of these index buffers to provide a seamless transition to the next lower level. At runtime, the resolution for each chunk is determined by some heuristic. A smoothing pass is done to prevent adjacent tiles varying by more than one level of detail.
This method is faster on modern hardware than older software-based dynamic LOD schemes.
My heuristic for determining the level of detail for each chunk uses the complexity of the chunk's data to increase the level of detail of noisy tiles. This is computed as the root mean squared error of the actual data and the simplest representation of the chunk, formed by bilinear interpolation between its corner values. This can be seen in the images below, where the noisy mountain peak is afforded more triangles than nearer chunks which would benefit less from the extra detail due to their simplicity. In order to optimize performance, the lowest detail tiles are batched into one dynamic index buffer and rendered in a single pass. The heightmap and corresponding texture used in this demo are high-resolution satellite imagery of Hawaii from the Virtual Terrain Project.

Video: WMV 7.6 MB



Terrain image Terrain image Terrain image