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.
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.
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:
- height blending, so stones poke through grass instead of fading into it;
- triplanar and world-aligned mapping on steep slopes, where top-down UVs stretch;
- breaking up tiling and detail maps and macro variation, because a terrain material repeats thousands of times;
- texture arrays, to keep many layers in one material.
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
- 8-bit heightmaps. Terraces of up to 2 m at default scale. Use 16 bits (Unreal Engine Documentation: Landscape Technical Guide).
- Mismatched heights on import. A terrain made 800 m tall in a generator but imported at Unreal's 512 m default range will be clipped or squashed. Set Z scale to match.
- Odd sizes. Unity needs 2ⁿ + 1 resolutions (Unity Manual: Terrain settings reference); Unreal works best at its recommended sizes (Unreal Engine Documentation: Landscape Technical Guide).
- Too many components. Each section is a draw call (Unreal Engine Documentation: Landscape Technical Guide).
- Visible tiling. A layer that looks fine at 5 m repeats obviously at 500 m. See breaking up tiling.
#Further reading and watching
References
- · Landscape Technical Guide · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-21
- · Terrain settings reference · Unity Manual, 2026 · docs · accessed 2026-10-21
- · Terrain3D documentation · Read the Docs, 2026 · docs · accessed 2026-10-21
- · Terrain3D (README) · GitHub, 2026 · tool · accessed 2026-10-21
- · Runtime Virtual Texturing · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-21
- · Adaptive Virtual Texture Rendering in Far Cry 4 · GDC 2015, 2015 · talk · accessed 2026-10-21
- · Virtual Texture Terrain · Game Developer, 2013 · article · accessed 2026-10-21
- · World Machine features · world-machine.com, 2026 · tool · accessed 2026-10-21
- · Houdini Engine for Unreal: PCG overview · Houdini documentation, 2026 · docs · accessed 2026-10-21
- · Terrain Rendering in 'Far Cry 5' · GDC 2018, 2018 · talk · accessed 2026-10-21
- · Video: The world generation tech behind Far Cry 5 · Game Developer, 2020 · article · accessed 2026-10-21
- · Erosion Breakdown · ArtStation, 2023 · web · accessed 2026-10-21
Pages that link here
- Roles in 3D game production Topic
- Game engines Reference
- Vegetation and procedural tools Reference
- Modding and user-generated content tools Reference
- CAD and NURBS modeling for games Topic
- Procedural modeling Topic
- Gym levels and metrics maps Key term
- Kitbashing Topic
- Hero assets, props and filler Topic
- Modeling rocks, trees and terrain pieces Topic
- Hierarchical LOD (HLOD) Key term
- Digital sculpting Topic
- Macro normals Key term
- Sculpting rocks and cliffs Guide
- UV mapping Topic
- Normal map Key term
- Height and displacement maps Key term
- Texture streaming Key term
- Bit depth and banding Key term
- Ways to texture an environment Overview
- Tileable materials Topic
- Photo-sourced and scanned materials Topic
- Decals Topic
- Vertex painting and blending Topic
- Height blending Key term
- Triplanar and world-aligned mapping Topic
- Detail maps and macro variation Topic
- Breaking up tiling Topic
- Master materials and instances Topic
- Texture arrays Key term
- Terrain layers and splat maps Key term
- Heightfield erosion Key term
- Foliage and vegetation Topic
- Procedural placement and scattering Topic
- Virtual texturing Key term
- Level design and environment art Overview
- Blockout (greyboxing) Topic
- Prospect and refuge Key term
- Wayfinding Topic
- Set dressing and art passes Topic
- Worldbuilding for artists Topic
- Learning platforms and courses Reference
- Essential talks and videos Reference
- Game art breakdowns: a curated library Reference
Last updated 2026-10-22