Polygon based terrain LOD

Started by
3 comments, last by 3DModelerMan 10 years, 2 months ago

I'm working on the terrain system for my game, and I want to use a polygon based terrain system. Heightfields don't support caves/overhangs, and voxels take up too much memory. What I'm planning to do is generate polygon based terrain meshes using marching cubes (I want to keep the convenience of voxels for the art pipeline). Then I want to load the polygon based terrain meshes into the engine and render them using dynamic LOD to only load the high resolution version for the closer terrain tiles. The problem I'm having is how to handle seams. If I just load in the low resolution terrain mesh and tile it next to the high res version, then there will be cracks and seams in the edges. What would be the best way to do this? I was also considering using hardware tessellation and just loading a massive ultra low resolution version of the terrain, but that requires support for hardware tessellation, which I can't rely on.

Advertisement

I started with your approach, but I then gave it up! The simple reason is that the only way to avoid the seams is to create skirts (which involves lots of sudden popping of terrain).

So I now use (subject to change!) a normal heightmap, with LOD built into it via a PVS.

With respect to 'gaps' in your terrain for tunnels, you can simply omit to draw a certain patch and render it with a drop in model/mesh replacement. Of course, LOD presents certain problems in itself, but certainly not overcomeable, like this!

lod.jpg?psid=1

Since you start out with voxel data, have you considered this modified marching cubes algorithm that allows for LODing without cracks?

http://www.terathon.com/voxels/

There's a fairly old series of articles by Jonathon Blow about doing LOD for environmental triangle soups. Doesn't sound like it's simple to implement.

http://number-none.com/product/Unified%20Rendering%20LOD,%20Part%201/

http://number-none.com/product/Unified%20Rendering%20LOD,%20Part%202/

http://number-none.com/product/Unified%20Rendering%20LOD,%20Part%203/

http://number-none.com/product/Unified%20Rendering%20LOD,%20Part%204/

http://number-none.com/product/Unified%20Rendering%20LOD,%20Part%205/

Parts 1 and 2 talk about heightfield lodding, then it starts getting into more general 3D model cases in parts 3, 4 and 5.

I like the transvoxel algorithm so far. What's the best voxel compression algorithm so far? Because that looks like an algorithm that I could use while keeping the terrain data in voxel format for the final game instead of converting my map into a mesh during preprocessing.

This topic is closed to new replies.

Advertisement