Nanite Tessellation pushes displacement in the wrong direction on landscapes with Z scale (UE-367789, still in 5.8)

Hi,

I sell environment packs on Fab and I’m porting a mountain landscape pack to Unreal. Nanite Tessellation works on flat ground, but it breaks on every slope and cliff, and I believe this is UE-367789. I’ve reproduced it in 5.5.4 and in 5.8.

Setup

  • Landscape 8129 x 8129, 1024 components
  • Scale 100 / 100 / 1000. This is required to get the ~3000 m of relief stored in the 16-bit heightmap. At 100 / 100 / 100 the terrain is limited to 512 m and the mountains are flattened.
  • Nanite enabled on the landscape, data built
  • r.Nanite.AllowTessellation=1 and r.Nanite.Tessellation=1 in DefaultEngine.ini
  • Landscape material with a height texture plugged into Displacement, tessellation enabled in the material

So what happens?

  • Flat ground: displacement looks correct.
  • Slopes and cliffs: the displacement is pushed almost vertically instead of along the surface normal. The relief slides along the cliff face and creates vertical streaks. The steeper the slope, the worse it gets.

What proves it’s the scale

  • The exact same material on a default landscape at 100 / 100 / 100 displaces correctly on steep slopes.
  • Only the Z scale changes between the two tests.

This matches the description of UE-367789, the displacement seems to use the normal of the unscaled landscape.

A “Z” scale different from “X/Y” is the standard way to import tall terrain. With this bug, Nanite Tessellation can’t be used on cliffs for any mountainous landscape, which is really annoying. The alternatives aren’t viable: lowering the Z scale flattens the terrain, a uniform scale forces a much coarser vertex spacing, and converting the terrain to a static mesh loses landscape collision.

Questions

  1. Is a fix planned for UE-367789, and in which version?
  2. Is there any supported workaround in the meantime, for example a setting or a material approach that makes the displacement follow the scaled normal?

Screenshots attached: the same cliff at 100/100/1000 and at 100/100/100.

Thanks.