Search Issue Tracker
By Design
Votes
0
Found in
2017.1.1p3
Issue ID
969351
Regression
No
Imported model joints cause incorrect normals
Steps to reproduce:
1. Start a new project
2. Import user provided package
3. Open the test scene
4. Notice that the model with joints has normal issues on the upper eyelids
Expected result: Upper eyelids should display correct normals
Reproduced in: 2018.1.0a6, 2017.3.0b11, 2017.2.0p3, 2017.1.2p3, 5.6.4p3, 5.5.5p1
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
- Crash on GizmoDrawingPhysics2D::DrawCompositeCollider2DGizmo when opening a Scene that has corrupted GameObjects with Tilemap Components
- Scrolling vertically and horizontally is very fast when in Play Mode and RuntimeInputBackend is set to UIToolkitInputBackendOption.Default
- Crash on MemoryProfiler::UnregisterAllocation when initializing entities and leaving Play Mode with Occlusion Culling enabled
- Crash on mdb_page_alloc when opening a project that was running while the PC shut down
- macOS Player freeze when using RunInBackground and Command+Tabbing to and from the application
Resolution Note:
The model is set to calculate normals. These normals are computed in bindpose (when the eye lids are open). Because the eyes are open the triangles in this area is quite compressed. So I bet there are triangles there that are either degenerate or points some funny way. Thereby resulting in odd normals, without being visible because it gets occluded by other geometry.
When skinning is applied to open the eye lids the artifacts become visible. The skinning is a matrix multiplication so the normals are not fixed by this process. As noted none of the artifacts are observed when the model is imported with the eyes closed. In this state normal recalculation provides a much better result. Furthermore, any artifacts would occur when the eyes are open. In this state the eye lid geometry is hardly visible.
To summarize, in order to resolve the artifacts either put the model in a bindpose that makes recalculating normals easier or import the normals from the FBX. In the last case you have to make sure you authored the normals correctly in the DCC tool.