Spline mesh deform breaks WPO when used with Nanite meshes

Hello everyone,

I’ve found an issue when using a Nanite mesh in a spline mesh component and a material that applies WPO based on the vertex normal the results look very different to what you get when using the same material and spline but with a non-Nanite mesh. And you get different results depending on the forward axis setting in the spline mesh component. This happens specifically when the spline applies any bending and isn’t a straight line. And this happens with or without Explicit Tangents on the Nanite mesh.

Here’s a screenshot from the repro map that I attached below. It shows the engine’s default cylinder in white and a duplicate of the default cylinder with Nanite enabled in red. All meshes have the same material applied, the material behaves exactly the same except for a Nanite switch that affects the Base Color only. The WPO doesn’t do anything fancy. It just moves the vertices along the vertex world normal.

[Image Removed]

Based on my experiments and what I’ve seen of the code involved, I currently think this might be caused by a broken tangent space and/or by a difference in the order in which WPO and spline deform are applied. I would greatly appreciate any help with fixing this issue.

I was able to repro this in 5.5, 5.6 and 5.7-preview.

Best,

Christian

Hello,

Thank you for reporting this. I can confirm this issue can be reproduced as described in the latest CL, and have opened a bug report:

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.