Short version: I want the character’s outfit to use Imported normals, but their body parts to use Calculated normals.
Long version: When importing an FBX, there’s a single option for choosing how to handle normals for the whole model. You can choose “Calculate”, to let Unity decide, or “Import” to use whatever is specified in the FBX:
The issue I’m having with this is that ideally I’d use a different approach on different Skinned Mesh Renderers in the model. Specifically, the character’s outfit really benefits from using the imported normals (to get all the hard edges set in the 3D modelling tool), while the character’s face benefits from Calculated normals (otherwise facial animations tend to look wrong).
I’m trying to understand if there’s a simple option to having various SMRs in the model use one approach to normals, while other SMRs in the model use the other.
I see that Mesh has a RecalculateNormals method, but it’s not clear to me whether calling RecalculateNormals once is effectively the same as setting the model’s normals to “Calculate”. It doesn’t seem feasible to call RecalculateNormals every frame.
And to explain why I feel I need to do this:
Character outfits are often modelled with “hard” surfaces, where you’d want to preserve the sharp normals, such as a suit of armor. If you smooth those normals, it looks really weird. But the character’s face needs to continuously be smoothed, otherwise when blend shapes deform the model, it seems to keep using the imported normal for the vertices, which is no longer the actual normal of that vertex. For example, here’s the same character side-by-side, where the left uses Calculate, and the right uses Import. With all blend shapes zero’d out, they look the same:
But if I adjust the blend shapes, you can see that the model using “Calculate” has reasonable normals, while the model using “Import” has completely messed up normals:
I’m trying to get the character’s face to always use the approach on the left, without losing the hard edges on the character’s outfit.
Has anyone dealt with this?


