Terrain Rendering using Geometry Clipmaps

Abstract

Geometry clipmaps present a quick, intuitive, and high performance solution to the problem of rendering terrain at varying levels of detail (LOD). Recent advances in graphics hardware allow a significant portion of geometry clipmap processing to be done on the GPU, making the performance even better. This work explores implementing geometry clipmaps on the GPU and discusses the optimizations and pitfalls involved in doing so.

paper | video (80mb mpeg4)

View Dependent Geometry Clipmaps

In the previous geometry clipmap work, clipmaps were oriented along the x,z plane and move only when the camera exceeds some threshold. Every frame, the positions of the clipmaps must be recomputed by the CPU and then passed to the GPU. The "view dependent" approach attempts to skip this step by fixing the clipmap meshes in view space.

Exponentially-Sized Clipmaps

In the previous geometry clipmap work, care was taken to ensure that each LOD ring was exactly twice the size of the previous one, such that for every four triangles that formed a rectangle in a finer LOD there there were two triangles that formed a square in the adjacent coarser LOD. Organizing a triangle strip in this manner introduced minor complexity in that several carefully constructed vertex and index buffers needed to be created to make sure each finer set of triangles had matching coarser triangles aligned with them. Exponentially-sized clipmaps tosses this approach in favor of a brute-force approach that is much easier to implement.

Normal Blending

Normal Blending is a technique that combines per-vertex and per-pixel normals by linearly interpolating between them. The end result is efficient and produces desirable output.

References

Asivatham and Hoppe. Terrain rendering using gpu-based geometry clipmaps. GPU Gems 2. 2005.

Losasso and Hoppe. Geometry clipmaps: terrain rendering using nested rectangular grids. ACM Trans. Graph., 23(3):769-776, 2004.