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
1

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