Nanite displacement issue when using along non-uniform scaling

Working in a material deformation system, I was issued with a problem regarding Nanite displacement when working on non-uniform Landscape scales.

Playing with the Z scale of the Landscape is encouraged through the documentation to tweak the scale span of the Landscape, but doing so seems to mess up the displacement when there’s some relief in the terrain. When displacement is applied in zones of small bumps, Nanite seems to not take the non-uniform scaling into account and apply the displacement along the normal pre-scaling. So it thinks that the slope is huge though it’s not visually speaking.

I’ve joined images to showcase the problem.

If something’s unclear, please let me know !

[Attachment Removed]

Steps to Reproduce
You must have a Nanite landscape to apply the displacement, do a non-uniform scaling with a different Z scale, let’s say x=100, y=100 and z=25, add some relief on to your landscape, small bumps are going to mess up the Nanite normals due to the non uniform scaling and the displacement will be torn, it will not follow the visible normal of the slope.

[Attachment Removed]

Hello,

Thank you for reaching out.

I’ve been assigned this issue, and we will be looking into this use-case of Nanite Tessellation for you.

[Attachment Removed]

Hello,

Thank you for reporting the issue. We have been able to reproduce this in the latest CL and will open a bug report for it.

We will send you the public tracker once it is available.

[Attachment Removed]

Hello,

We have opened the bug report. Here is a public tracker:

https://issues.unrealengine.com/issue/UE\-367789

The tracker will be visible after it is approved internally at Epic Games and is publicly accessible.

If you have any further questions, please let us know.

[Attachment Removed]

Hello,

Thanks for your answer !

If you have questions, don’t hesitate to reach out to me.

[Attachment Removed]

Hello,

Thanks a lot, excited to see the results !

If I’m not mistaken the issue should be that Nanite, when applying the displacement, doesn’t take into account the non-uniform scaling and applies the displacement with the surface normal “pre scaled”.

Maybe multiplying the normal by the inverse scale before applying the displacement could do the trick ?

[Attachment Removed]