Operating system: Windows 10 64 Home
Graphics card: GTX 1080Ti
Broken: Version 2.80 Beta e7356bb01198, 2019-07-02 13:31
FBX exporter: custom vertex normals direction change when imported into Substance Painter
Exact steps for others to reproduce the error
- Open .blend Blender file and inspect the custom vertex normal.
- The custom vertex normals are correct as shown in the screenshot (.zip).
- And export the mesh with custom vertex normals as FBX with both ‘normals only’ and ‘edge’ smoothing.
- Open it in Painter assign a metallic material to inspect the vertex normal direction as shown in the screenshot.
- Painter vertex normal direction is not correct. Looks like an average vertex normal was applied.
Looks like Painter is not opening correctly the Blender FBX or
the FBX exporter is recalculating (making average) of custom vertex normals or applying to remove double vertices when exporting.
Somehow exporting FBX from Blender the vertex normals are not imported correctly in Painter. If you import the Blender FBX to Unity or Rhinoceros, the custom vertex normals are correct. So in the first impression looks like is a Substance Painter side.
But it can be not the case because the exact same FBX Blender file, imported to Rhinoceros3D and exported from Rhinoceros3D as FBX, is imported correctly into Substance Painter. This means that Rhinoceros is somehow fixing the Blender FBX.
Conclusion after one-week debugging was that the FBX communication between Blender and Painter is not working well.
I submit the same bug to Substance Painter.
As a user, I can't talk to Algorithmic: Please talk to each other.
The OBJ instead is working fine when is imported to S. Painter.
Consider in the FBX user interface a boolean to toggle off recalculating normals (so that custom vertex normals are preserved).
Enclose you will find:
- Blender file including the mesh with custom vertex normals.
- ZIP: Screenshots of the Blender FBX vertex normal direction inside Blender, Painter, Rhino and Unity software. FBX file exported from Blender, Blender FBX, Rhino FBX, Blender OBJ.