Terrain in Games

Middleware

If we consider all software libraries with terrain features, there are far too many to list, and new ones appear very often.  Here are just a few examples:

  • hetch_bigAdVantage terrain library
    • Very smooth paging of grid and imagery datasets up to 32k*32k in size
    • Fast rendering technique that uses almost no CPU time, is GPU and VRAM friendly, and has smooth transition (morph) between LOD levels.
    • Several nice demo datasets.
    • The author, Filip Strugar, gives an example of elevation data size: For the classic Puget Sound dataset (16k*16k, 2 bytes/heixel), that's 256 Mh/512 MB of input, processed as 48.26 million triangles, 306 MB of storage space, which is only 1.2 bytes per input heixel.  Textures are handled as DDS with around .5 bytes/texel.
  • T5 T-5 Terrain Rendering Engine by Rui Ferreira
    • the current engine has attractive, full-unique texturing and RTIN CLOD for elevation
    • Rui says he tried out every sort of algorithm: binary triangle trees, quadtrees, split-only versions, leaf split-mergers, weird split metrics, vertices buffers, dynamic variance, diamond combiners, fan optimizers, 5 point strips, top-down, bottom-up...
    • the engine does full unique texturing
  • Power RenderPower Render 3D Engine
    • the engine has the standard splatting and LOD features - what makes it special is the included terrain editing environment, Landscape Studio
    • you can edit the heightfield in realtime, place objects (which includes vegetation) with parameterized distribution, and more
    • unfortunately, you can't yet import or export data, which means that real-world data can't be used in Power Render, and Landscape Studio can't be used as an editor for other environments

Navigational Constraints

The type of terrain used in a game will depend on the range of navigation needed.  Some common styles of navigation are:

  1. Top-down games only let you look at a downward angle, and do not have to deal with a wide range of distances.  Hither clipping and LOD is greatly simplified or not needed.
  2. Unconstrained ground games let you look up or down, and get close to the surface.  They must allow a wide range of distances and levels of detail, and deal with hither clipping.  Some have third-person display modes, but allow the full navigational freedom of a 1st-person point of view.
  3. Unconstrained air games are similar, but do not have to deal with drawing near objects/scenery accurately.

Traditionally, each of these styles had different tradeoffs resulting in different algorithms.  More recently (2000-) terrain rendering systems have tended to have a more unified approach which can handle any style of navigation.  See Traditional implementation of terrain in games (1995-2002).

As of 2004, an interesting trend: Using Game Engines for Architectural Walkthroughs.