Search Issue Tracker
Fixed
Fixed in 6000.5.0a3
Votes
0
Found in
2021.3.36f1
Issue ID
UUM-122300
Regression
No
Blend Shape normals are incorrect for .fbx files when Normals are set to Import and Blend Shape Normals are set to Calculate
Unity calculates “deltaNormals[]” incorrectly when a mesh has imported normals and blend shapes, specifically with FBX-imported models, where Normals are set to Import and Blend Shape Normals are set to Calculate. Currently, Unity calculates the delta between the imported rest normal and a blend normal generated using ModelImporterNormalCalculationMode and ModelImporterNormalSmoothingSource. The user suggests this is mathematically wrong - the delta should instead be calculated between the calculated blendshape normal and a new rest pose normal generated using the same CalculationMode/SmoothingSource as the blend normals.
To the user, this means models using imported normals cannot use blend shapes without either disabling normals (not feasible) or producing visible artifacts, often on character faces.
Note: Not reproduced by CQA
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Objects with Universal Render Pipeline/Particles/Lit shader are always lit up when changing their Rendering Layer Mask
- PolySpatial “Trying to set shader on a Material Variant.” error is printed in the console when entering Play Mode
- Error “Shader error in 'YSCloudCover': call to 'tex3D' is ambiguous at Assets/YSCloudCoverText.shader(606) (on d3d11)“ is present when compiling tex3D shader with DXC
- Placeholder asset is not loaded with Advertisement Legacy sample when using the latest version of the package
- Addressables content build fails but the Player build is successful when building a development build
Resolution Note (fix version 6000.5.0a3):
Fixes the calculation of blendshape normals when mesh normals import mode is set to 'Import' and blendShape normals import mode is set to 'Calculate', the original code was using the imported normals as a base which results in incorrect offsets.
A new import setting ensures that existing assets maintain the same behavior.