I'm making a terrain system which needs to be procedurally generated and would like to know my options. So far I know of: Height-field terrain, Vector-field terrain, and Voxel terrain. Is there anything missing from that list?
1 Answer
Just a quick note about voxel landscapes. It is a wide field and there are a variety of representations and algorithms for display.
Heightfield voxel terrain: stored as a heightmap, but rendered with vertical strips rather than polygons. Check out "Outcast"
Cuboid terrain: I believe stored in terrain chunks as run-length encoded strips. Displayed as a bunch of quads, separating empty voxels from solid ones. We all know minecraft.
Polygonised scalar field: A voxel field of real values representing signed distance from surface. Surface is extracted with a polygonisation algorithm like "marching cubes", "marching tetrahedrons" or "dual contouring". See this GPU Gems article.
Sparse voxel octrees: Stored as a memory efficient octree, and rendered by raycasting the tree directly. This technique has great potential but is still in its infancy. Check out Atomontage
-
1\$\begingroup\$ Polygonised scalar field. So that's the name for that subset. \$\endgroup\$ May 21, 2013 at 3:21