Volume Rendering with LOD aimed at terrain

Philip LB

Abstract

Aim of this project is to implement a volume rendering approach with LOD with the primary purpose of rendering terrain. This would evolve in a full fledged terrain implementation over time.

Additional Information

I plan to implement a volume renderer for large meshes like terrains. Ideally this would become a full fledged volume terrain component for Ogre over time which I will support and be responsible for the ongoing development. After the summer I will maintain this subproject, complete existing features and add new. This GSoC is aimed at creating a prototype. The license will be the same as OGRE itself, MIT.

The heart of something like this is a LOD algorithm. One of the few current available resources here is the Transvoxel algorithm [1]. But I think it has a major drawback: So many triangles due to the modified Marching Cubes. So my idea is to take Dual Marching Cubes [2], which is much sparser in triangles where they aren't needed. It also preserves sharp edges.

The LOD part of it would be similar to Chunked LOD Terrain [3] where the single chunks are closed so the cracks are already filled. With closed I mean this: To generate a chunk, there's always a part of the volume data, a cube, to be used. At the planes of this cube, the isosurface would have open parts as it is "cut" out of the rest. See the dark gray part of the following image (lousy programmer art). When this open parts are triangulated and closed, no gaps can occure anymore when two chunks of different resolutions are drawn together.

[1] http://www.terathon.com/voxels/

[2] http://faculty.cs.tamu.edu/schaefer/research/dmc.pdf

[3] http://tulrich.com/geekstuff/chunklod.html

Code samples