The 3D Handbook
Topic

Terrain and landscapes

How heightmap terrain works in Unreal, Unity and Godot; landscape sizes and components, heightmap bit depth, terrain texturing with layers and virtual textures, generating terrain in World Machine and similar tools, and how Far Cry handled terrain at open-world scale.

terrainlandscapeworld-buildingunrealunitygodot

Terrain (Unreal calls it a landscape) is a large ground surface built from a heightmap: a greyscale image in which each pixel stores the height of one point on a regular grid. The engine turns that grid into a mesh, simplifies it with distance and paints it with blended material layers. Unreal stores landscape heights "with 16-bit precision" (Unreal Engine Documentation: Landscape Technical Guide); Unity's terrain uses a heightmap whose resolution "must be a power of two plus one, for example, 513" (Unity Manual: Terrain settings reference).

Unreal, Unity and Godot's Terrain3D add-on all build terrain this way. It is fast to edit, compact on disk and easy to generate with external tools. It also has limits, chiefly that a heightmap stores one height per point and so cannot make overhangs or caves. This page covers how terrain is structured, textured and generated, and where you need meshes instead. For what grows on it, see foliage and vegetation and procedural placement and scattering.

#Heightmaps and bit depth

Each pixel of a heightmap is one height sample. Bit depth decides how finely heights can be stored, which has a large effect on slopes. See bit depth and banding and height and displacement maps.

At Unreal's default Z scale of 100, landscape heights run "between 256 m and -256 m", a 512 m range; at a Z scale of 1 the range shrinks to about ±256 cm (Unreal Engine Documentation: Landscape Technical Guide). Unreal imports 16-bit greyscale PNG, 8-bit r8 and 16-bit r16 files (Unreal Engine Documentation: Landscape Technical Guide).

#How Unreal divides a landscape

Unreal splits a landscape into equal, square components, and each component into 1 or 4 (2 × 2) sections (Unreal Engine Documentation: Landscape Technical Guide). Sections "are the base unit of Landscape LOD calculation", and "each section is a draw call" (Unreal Engine Documentation: Landscape Technical Guide). See draw calls and level of detail.

Left, a landscape divided into a 4 by 4 grid of components with one highlighted. Right, an enlarged component divided by orange lines into 2 by 2 sections, each filled with a fine grid of quads.
Landscape, components and sections. Sections are the unit of LOD and of draw calls, which is why their size and count matter for performance.Diagram by the handbook author, after Epic's Landscape Technical Guide

Epic's recommended sizes include (Unreal Engine Documentation: Landscape Technical Guide):

Overall size (vertices) Quads per section Sections per component Component size (quads) Components
8129 × 8129 127 2 × 2 254 × 254 1,024 (32 × 32)
4033 × 4033 63 2 × 2 126 × 126 1,024 (32 × 32)
2017 × 2017 63 2 × 2 126 × 126 256 (16 × 16)
1009 × 1009 63 2 × 2 126 × 126 64 (8 × 8)
505 × 505 63 2 × 2 126 × 126 16 (4 × 4)

There is a trade-off in the component size. "Smaller Landscape Component sizes facilitate quicker LOD transitions and the occlusion of more terrain", but they mean more components, and "using fewer Landscape Components gives better performance" (Unreal Engine Documentation: Landscape Technical Guide). For the largest landscapes, "Epic recommends a maximum of 1024 Landscape Components" (Unreal Engine Documentation: Landscape Technical Guide).

#Unity and Godot

Unity terrains are separate tiles whose width and length can each range "from 1 to 100,000" and height "from 1 to 10,000" (Unity Manual: Terrain settings reference). Key settings (Unity Manual: Terrain settings reference):

  • Heightmap Resolution: a power of two plus one, such as 513.
  • Control Texture Resolution: "the resolution of the splatmap that controls the blending of the different Terrain Textures".
  • Pixel Error: simplifies the terrain mesh with distance, trading accuracy for speed.
  • Base Map Distance: beyond it, the terrain switches to a lower-resolution composite texture.
  • Tree Distance, Billboard Start and Detail Distance: how far trees, tree billboards and grass are drawn.

Godot 4 has the Terrain3D add-on, which describes itself as "a high performance, editable terrain system for Godot 4" (Read the Docs: Terrain3D documentation). It supports terrains "as small as 64x64m up to 65.5x65.5km", "up to 32 textures", up to 10 levels of detail, holes, and foliage instancing (GitHub: Terrain3D). It is released under the MIT licence (GitHub: Terrain3D).

#Texturing terrain

Terrain is usually textured with layers: tiling materials such as grass, dirt, rock and snow, blended by painted weight maps (Unity's splatmap) (Unity Manual: Terrain settings reference). Good terrain materials lean on several techniques covered elsewhere:

Runtime virtual textures can cache the blended result. Unreal's RVT "caches shading data over large areas", which suits "Landscape shading that uses decal-like materials", and roads drawn with landscape splines should write into it (Unreal Engine Documentation: Runtime Virtual Texturing). Meshes such as rocks can sample it to blend their bases into the ground. See virtual texturing.

#Generating terrain

Real landscapes are shaped by water, gravity and weather over long periods, which is hard to imitate by hand over kilometres. Terrain generators simulate those processes.

World Machine "runs an actual simulation across your terrain", with flow-based, thermal and snow models, and is built as "a graph of modular devices" you can change without re-sculpting (world-machine.com: World Machine features). Professional editions build tiled worlds "bounded by your disk rather than your RAM", and maps export as colour, elevation and mask data in PNG, TIFF, EXR, RAW and other formats (world-machine.com: World Machine features). The free Basic edition "builds up to 1K" for non-commercial work (world-machine.com: World Machine features). Gaea, World Creator and other generators are compared, with prices, in vegetation and procedural tools.

Houdini works on terrain as heightfields, and SideFX notes that "Landscape creation is fully supported by Houdini in PCG" inside Unreal (Houdini documentation: Houdini Engine for Unreal: PCG overview).

#Limits of heightmaps

A heightmap cannot store two heights at one point, so overhangs, arches, caves and vertical cliffs need meshes. Terrain3D supports holes in the terrain, so a cave mesh can take over (GitHub: Terrain3D). Far Cry 5 generated cliff geometry on top of the heightfield (GDC 2018: Terrain Rendering in 'Far Cry 5'). Jared Sobotta's erosion breakdown for The Last of Us Part I shows the same split in a linear game: eroded embankments built from prototype meshes, terrain geometry and instanced rocks, with one image tinting the terrain geometry blue so you can see how much of the scene is placed meshes; a height map also displaces the terrain for thicker erosion lines (ArtStation: Erosion Breakdown). For modeling those pieces, see modeling rocks, trees and terrain pieces and sculpting rocks and cliffs.

#In different engines and tools

Unreal Engine 5 Unity 6 Godot 4 (Terrain3D)
Structure Components and sections; up to 1,024 components recommended (Unreal Engine Documentation) Terrain tiles up to 100,000 × 100,000 m (Unity Manual) Regions from 64 m to 65.5 km (GitHub)
Height data 16-bit; ±256 m at Z scale 100 (Unreal Engine Documentation) Heightmap at 2ⁿ + 1 resolution (Unity Manual) —
Material layers Weight-painted layers; RVT caching (Unreal Engine Documentation) Splatmap (control texture) (Unity Manual) Up to 32 textures (GitHub)
Vegetation See foliage and vegetation Trees, billboards, details (Unity Manual) Foliage instancing (GitHub)

#Common mistakes

#Further reading and watching

References

  1. Epic Games · Landscape Technical Guide · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-21
  2. Unity Technologies · Terrain settings reference · Unity Manual, 2026 · docs · accessed 2026-10-21
  3. Cory Petkovsek, Roope Palmroos and contributors · Terrain3D documentation · Read the Docs, 2026 · docs · accessed 2026-10-21
  4. Cory Petkovsek, Roope Palmroos and contributors · Terrain3D (README) · GitHub, 2026 · tool · accessed 2026-10-21
  5. Epic Games · Runtime Virtual Texturing · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-21
  6. Ka Chen (Ubisoft) · Adaptive Virtual Texture Rendering in Far Cry 4 · GDC 2015, 2015 · talk · accessed 2026-10-21
  7. Josh Klint · Virtual Texture Terrain · Game Developer, 2013 · article · accessed 2026-10-21
  8. World Machine Software · World Machine features · world-machine.com, 2026 · tool · accessed 2026-10-21
  9. SideFX · Houdini Engine for Unreal: PCG overview · Houdini documentation, 2026 · docs · accessed 2026-10-21
  10. Jeremy Moore (Ubisoft) · Terrain Rendering in 'Far Cry 5' · GDC 2018, 2018 · talk · accessed 2026-10-21
  11. Game Developer (talk by Etienne Carrier, Ubisoft) · Video: The world generation tech behind Far Cry 5 · Game Developer, 2020 · article · accessed 2026-10-21
  12. Jared Sobotta · Erosion Breakdown · ArtStation, 2023 · web · accessed 2026-10-21

Last updated 2026-10-22