Make Nanite Tessellation ignore object scale

Is there a way to ignore the object scale when it comes to displacement?

Currently the magnitude of the material is scaled by the objects scale, which causes bigger objects to have bigger displacements. This works fine when the material is 1:1 with the object, but it breaks world align materials.

These two spheres use the same material, but have different scales.

1 Like

Proof of concept:
By add the following I get to hack in place that Displacement is not scaled. But there are some artifacts… Notice all the things use the same world positioned material

File: Private\Nanite\NaniteRasterizationCommon.ush Line: 461

NormalClip /= InstanceData.NonUniformScale.w / 100;

Artifacts
Not sure why the nanite mesh breaks down. I can’t find any references to Magnitude anywhere else in the code.

1 Like

Really looks awesome though!

1 Like

Ended up making a PR enabling it in the engine.

https://github.com/EpicGames/UnrealEngine/pull/11735