Hi,
In the Mesh Editor, we can add Displacement Maps to a Nanite mesh to introduce additional geometric height detail. However, after generating the higher-detail Nanite mesh using this method, the vertex normals of the mesh are not recomputed.
[Image Removed]
Is there a specific technical reason or design consideration behind this behavior?I’m interested in understanding the rationale for keeping the original vertex normals instead of recalculating them after displacement.
Thanks
[Attachment Removed]
Hi there,
Unreal Engine intentionally preserves the original vertex normals to maintain artist-controlled shading, stable Nanite LOD behavior, and specular stability. Displacement is treated as geometric enhancement rather than a shading source.
If UE recomputed normals after displacement, the shading could change drastically from the original asset, hard edges or custom normal would be lost, Artists would lose control over how the surface should shade.
Nanite displacement itself works along the interpolated vertex normal direction, not based on recomputed normals. Recomputing normals after displacement for Nanite, would require reconstructing consistent topology across clusters, and this kind of post-process geometry operations that depend on adjacency are not trivial. For high-poly Nanite meshes, this would be computationally expensive and memory heavy in the editor.
The expected workflow here is using base mesh normals for control macro shading, Normal map providing fine surface shading detail, Nanite displacement enhances the silhouette and geometric detail.
If you need the displacement detail to influence the normals directly, an alternative approach is to bake the displacement into the mesh before import, or regenerate the normals externally in a DCC tool.
I hope this helps clarify the case. Let me know if you have any further questions.
Best regards,
Henry Liu
[Attachment Removed]
Hi,
hanks for the detailed explanation ,this clears things up a lot. Really appreciate you taking the time to explain it!
[Attachment Removed]
Thank you for the update.
I will close this case now, but don’t hesitate to reach out if anything else comes up.
Cheers,
[Attachment Removed]