Virtualised geometry (Nanite)
How Unreal's Nanite streams and draws only the triangle detail the screen can show, what it supports in current versions, what it costs, and when not to use it.
Virtualised geometry is a way of rendering meshes in which the engine keeps the full-detail source, streams in only the parts the camera needs, and scales the triangle count with screen resolution (Unreal Engine Documentation: Nanite Virtualized Geometry). Unreal Engine 5's Nanite is the best-known example. 80 Level's summary of Epic's SIGGRAPH talk puts it as doing work "on only the detail that can be perceived and no more" (80 Level: A Deep Dive into Unreal Engine's 5 Nanite). Compare virtual texturing, which applies a similar streaming idea to textures.
For environment artists, Nanite changes what a triangle budget means, replaces most hand-made LODs for static meshes, and largely removes draw calls as a limit. It also brings new costs and limits, covered below.
#How it works, at artist level
You do not need the maths, but a mental model helps you make better assets.
- On import, the mesh is cut into clusters. Each cluster holds 128 triangles (SIGGRAPH 2021: Nanite: A Deep Dive).
- A hierarchy is built. Neighbouring clusters are grouped, merged, simplified to about half the triangles, and split again into 128-triangle clusters, repeating until one root remains (SIGGRAPH 2021: Nanite: A Deep Dive).
- At runtime, the engine picks clusters by screen error. For each part of the mesh, it draws the coarsest clusters whose simplification error, projected to screen pixels, is small enough (SIGGRAPH 2021: Nanite: A Deep Dive). Clusters "are swapped on the fly at varying levels of detail based on the camera view", and neighbours join without cracks (Unreal Engine Documentation: Nanite Virtualized Geometry).
- Data streams on demand. Only visible detail needs to be in memory, which is why Epic recommends SSDs (Unreal Engine Documentation: Nanite Virtualized Geometry).
- Tiny triangles get a special path. Clusters with triangles smaller than 32 pixels are rasterised in software, which Karis reports is about three times faster on average than their fastest hardware-rasteriser path (SIGGRAPH 2021: Nanite: A Deep Dive).
#What Nanite supports today
Support has grown with each release. The list below follows Epic's current documentation (Unreal Engine Documentation: Nanite Virtualized Geometry) unless noted.
| Feature | Status | Notes |
|---|---|---|
| Static meshes | Supported | The original use case. |
| Materials | Opaque and Masked | Unsupported materials fall back to a default with a log warning. Masked support arrived in 5.1 as "opacity masks" (Epic Games news). |
| World Position Offset | Supported, with limits | You "must clamp the amount of displacement" to manage cluster culling. Programmable rasteriser added in 5.1 (Epic Games news). |
| Skeletal meshes | Supported | Animation LODs instead of geometry LODs; one draw call per mesh. |
| Spline meshes | Supported | Landscape and Blueprint splines; added in 5.4 (Unreal Engine blog). |
| Landscape | Supported | Terrain can use Nanite. |
| Static displacement | Supported | An offline adaptive tessellator bakes displacement maps into an optimised Nanite mesh. |
| Tessellation | Listed in docs | Runtime programmable displacement. Introduced as Experimental in 5.4 (Unreal Engine blog); check your version's release notes for current status. |
| Nanite Foliage | Experimental in 5.7 | Combines Nanite Assemblies, Nanite Skinning and Nanite Voxels for dense animated vegetation (Unreal Engine news; Digital Production). |
| Decals | Partial | Decals project onto Nanite surfaces; translucent mesh decals are not supported. |
Not supported (Unreal Engine Documentation: Nanite Virtualized Geometry): morph targets, forward rendering, stereo VR rendering, MSAA, lighting channels, and per-view filtering by minimum screen radius or distance culling. Ray tracing uses a simplified fallback mesh by default.
#What it costs
Disk. Nanite meshes average 14.4 bytes per input triangle, so a one-million-triangle mesh is about 13.8 MB on disk (Unreal Engine Documentation: Nanite Technical Details). By default Nanite keeps every source triangle; Keep Triangle Percent and Trim Relative Error reduce disk size, which Epic frames as being about download size, "not specifically for improving performance" (Unreal Engine Documentation: Nanite Technical Details).
Memory for instances. Karis gives 457 MB for the transforms of 10 million instances (SIGGRAPH 2021: Nanite: A Deep Dive). Scenes are hard-limited to 16 million streamed-in instances (Unreal Engine Documentation: Nanite Virtualized Geometry).
Shading. Masked materials in Nanite "incur a significant cost during base pass shading"; on Fortnite, the team often chose more triangles with opaque materials instead (Unreal Engine tech blog: Bringing Nanite to Fortnite Battle Royale in…).
Overdraw. Foliage and other "aggregate" geometry perform worse in Nanite, partly because of overdraw (SIGGRAPH 2021: Nanite: A Deep Dive). Epic notes that "smaller objects that are closely stacked together create more overdraw than larger ones" (Unreal Engine Documentation: Nanite Technical Details).
Hardware. Nanite targets current console and desktop platforms with DirectX 12 and Shader Model 6 (Unreal Engine Documentation: Nanite Virtualized Geometry).
#When to use Nanite
Epic says Nanite "should generally be enabled wherever possible on platforms that support it" (Unreal Engine Documentation: Nanite Virtualized Geometry). Good candidates: meshes with many triangles or tiny on-screen triangles, many instances, large occluders, and meshes casting Virtual Shadow Map shadows (Unreal Engine Documentation: Nanite Virtualized Geometry). Fortnite found large non-Nanite meshes render shadows into Virtual Shadow Maps more slowly than equivalent Nanite meshes (Unreal Engine tech blog: Bringing Nanite to Fortnite Battle Royale in…).
Consider other options when:
- The target has no Nanite: mobile, standalone VR, or a game shipping on both Nanite and non-Nanite hardware (you will need classic LODs too).
- The material is translucent, or needs features Nanite does not support.
- Masked cards dominate, such as old-style card foliage, where opaque geometry may be cheaper (Unreal Engine tech blog: Bringing Nanite to Fortnite Battle Royale in…).
- The mesh is a sky sphere, Epic's own example of large triangles, no occlusion and a single instance, though it says the loss there is minimal (Unreal Engine Documentation: Nanite Virtualized Geometry).
#Similar approaches elsewhere
Nanite's cluster-hierarchy idea has also been applied outside Unreal's meshes. A 2025 SIGGRAPH paper, Virtualized 3D Gaussians, applies a cluster-based LOD system to Gaussian splat scenes and states it is "inspired by Unreal Engine 5's Nanite system" (Yang et al. 2025). It reports better speed and quality trade-offs, with storage roughly doubling (Yang et al. 2025). For other game engines, no comparable built-in system could be verified for this page; check your engine's current documentation.
#Practical tips for artists
- Enable Nanite on import with Build Nanite, and turn off Generate Lightmap UVs if you do not use baked lighting, to save import time and data (Unreal Engine Documentation: Nanite Virtualized Geometry).
- Use Preserve Area on foliage that thins at distance; Epic says it "should be enabled on all foliage meshes and nothing else" (Unreal Engine Documentation: Nanite Technical Details).
- Clamp World Position Offset so clusters are culled correctly (Unreal Engine Documentation: Nanite Virtualized Geometry).
- Trim source data for download size when needed, using Keep Triangle Percent (Unreal Engine Documentation: Nanite Technical Details). See decimation.
- Watch for tangent seams. Nanite derives tangents in the pixel shader instead of storing them, which can cause edge discontinuities (Unreal Engine Documentation: Nanite Virtualized Geometry). See tangent space and MikkTSpace.
#Common mistakes
- Importing raw multi-million-triangle scans everywhere. It works, but the download grows by about 13.8 MB per million triangles (Unreal Engine Documentation: Nanite Technical Details).
- Keeping unique 4K normal maps on Nanite meshes. Epic's comparison shows they remove the size advantage (Unreal Engine Documentation: Nanite Technical Details).
- Using masked materials by habit. Model the shape instead where you can (Unreal Engine tech blog: Bringing Nanite to Fortnite Battle Royale in…).
- Forgetting the fallback mesh. Ray tracing and unsupported platforms use it (Unreal Engine Documentation: Nanite Virtualized Geometry).
#Further reading and watching
References
- · Nanite Virtualized Geometry · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-20
- · A Deep Dive into Unreal Engine's 5 Nanite · 80 Level, 2021 · article · accessed 2026-10-20
- · Nanite: A Deep Dive · SIGGRAPH 2021, Advances in Real-Time Rendering in Games, 2021 · talk · accessed 2026-10-20
- · Watch Epic Games' amazing new Unreal Engine 5 demo · CG Channel, 2020 · article · accessed 2026-10-20
- · Unreal Engine 5.1 is now available · Epic Games news, 2022 · article · accessed 2026-10-20
- · Unreal Engine 5.4 is now available · Unreal Engine blog, 2024 · article · accessed 2026-10-20
- · Unreal Engine 5.7 is now available · Unreal Engine news, 2025 · article · accessed 2026-10-20
- · Unreal Engine 5.7: foliage, PCG and in-Editor AI · Digital Production, 2025 · article · accessed 2026-10-20
- · Unreal Engine 5.7 Performance Highlights · tomlooman.com, 2025 · article · accessed 2026-10-20
- · Unreal Engine 5.8 Preview Released · GameFromScratch, 2026 · article · accessed 2026-10-20
- · Nanite Technical Details · Unreal Engine Documentation, 2026 · docs · accessed 2026-10-20
- · Bringing Nanite to Fortnite Battle Royale in Chapter 4 · Unreal Engine tech blog · article · accessed 2026-10-20
- · A first look at Unreal Engine 5 · Unreal Engine blog, 2020 · article · accessed 2026-10-20
- · Virtualized 3D Gaussians: Flexible Cluster-based Level-of-Detail System for Real-Time Rendering of Composed Scenes · SIGGRAPH Conference Papers 2025 (arXiv), 2025 · paper · accessed 2026-10-20
Pages that link here
- How to use this handbook Guide
- Real-time vs. offline rendering Topic
- The game asset pipeline Topic
- 3D file formats Reference
- UV, retopology and baking tools Reference
- Vegetation and procedural tools Reference
- Ways to build a 3D model Overview
- Subdivision surface modeling Topic
- Topology Topic
- Hard-surface modeling Topic
- The high-to-low workflow Topic
- Polygon and triangle budgets Topic
- Level of detail (LOD) Topic
- Hierarchical LOD (HLOD) Key term
- Retopology Topic
- Decimation Key term
- Digital sculpting Topic
- Macro normals Key term
- Height and displacement maps Key term
- Parallax occlusion mapping Key term
- Vertex painting and blending Topic
- Shadows and virtual shadow maps Key term
- Cascaded shadow maps Key term
- Foliage and vegetation Topic
- Wind and world position offset Key term
- Virtual texturing Key term
- Performance and profiling Topic
- Draw calls Key term
- Overdraw Key term
- Photogrammetry Topic
- Essential talks and videos Reference
Last updated 2026-10-22