Tessellation and Displacement
Hardware tessellation with true world displacement, removed in Unreal Engine 5, is fully present in Vite. Set the material's Tessellation Mode and drive the World Displacement and Tessellation Multiplier pins.
Tessellation subdivides geometry on the GPU and displaces the resulting vertices along a displacement map, producing real geometric detail: silhouettes change, surfaces self-occlude and self-shadow correctly, and ray-traced effects intersect the displaced surface rather than the flat one.
Why this page exists
Unreal Engine 5 removed hardware tessellation. Nanite is offered as the replacement, but Nanite solves a different problem: it renders extremely dense authored meshes efficiently. It does not let you take a moderate-density mesh and add procedural or texture-driven detail at runtime.
The workflows that break without tessellation:
- Terrain and landscape displacement driven by a heightmap, where the detail is procedural and view-dependent rather than baked into a mesh.
- Runtime displacement — snow accumulation, footprints, deformation, water surfaces — where the displacement changes during play.
- Texture-driven detail on tiling surfaces, where a single material adds real depth to brick, cobble or bark across many meshes without authoring unique high-poly geometry for each.
- Memory-constrained detail, where a heightmap is dramatically cheaper than the equivalent dense mesh.
Vite keeps the entire 4.27 tessellation pipeline intact, which means these workflows still work.
Enabling tessellation on a material
Global controls
| CVar | Default | Effect |
|---|---|---|
r.TessellationAdaptivePixelsPerTriangle |
48.0 |
Global tessellation factor multiplier. Target screen-space triangle size in pixels when adaptive tessellation is enabled. |
Lowering the value produces smaller triangles and more subdivision; raising it produces fewer. It is a useful global scalability lever: expose it through your scalability groups so that lower quality presets back off tessellation across the whole project without touching individual materials.
Cost and control
Tessellation is not free, and the failure mode is severe: an unbounded tessellation multiplier on a large surface can generate millions of triangles and collapse frame rate.
Always bound the multiplier by distance. The standard pattern multiplies the tessellation factor by a distance falloff so that only nearby surfaces are subdivided:
- Sample
Camera Positionand the object or pixel world position. - Compute distance, remap it through a
DivideandSaturateinto a 0–1 falloff. - Multiply the falloff into the tessellation multiplier.
Watch triangle density directly. The wireframe view mode and the Shader Complexity view mode both
reveal runaway subdivision immediately. Add stat rhi to check triangle counts.
Displacement cracks appear at UV seams and mesh boundaries where adjacent vertices displace by different amounts. Fix them by making the heightmap continuous across the seam, or by masking displacement to zero at boundaries.
Interaction with ray tracing
Displaced geometry participates in ray tracing correctly, which is a meaningful advantage over the parallax-mapping alternatives. A parallax-occlusion-mapped brick wall looks displaced from the primary view but is flat to every ray-traced reflection, shadow and DDGI probe ray. A tessellated and displaced one is genuinely displaced to all of them.
The cost is that ray tracing acceleration structures must be built for the displaced geometry, which increases BLAS build cost for dynamically tessellated surfaces. For large static displaced surfaces this is paid once; for surfaces whose displacement animates every frame it is paid continuously. Budget accordingly.
Alternatives
Tessellation is the right tool when you need real geometry. When you do not:
| Technique | When it is enough |
|---|---|
| Normal mapping | Lighting detail only; silhouette and self-occlusion do not matter |
| Parallax occlusion mapping | Convincing depth from the primary view, flat to rays, no geometry cost |
| Authored high-poly meshes | Static detail, known in advance, memory budget allows it |
| Tessellation | Silhouette matters, displacement is dynamic, or ray-traced effects must see the detail |