Operating system: Windows-10-10.0.17763 64 Bits
Graphics card: GeForce GTX 1080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 436.30
Broken: version: 2.82 (sub 0), branch: master, commit date: 2019-10-15 18:02, hash: rBa8d001fef5e8
Short description of error
The FBX importer seems to do a strange conversion for the normal strength, which was brought to my attention by a question on Blender's StackExchange. Creating a material with a Normal Map node with strength set to 1.0, exported to .fbx and imported again, will result in a strength of approximately 0.14. The reason for this seems to be the following calculation in line 1429 of the import_fbx.py introduced in commit 94a1268efa6a16b2e85b95a6ad145e3bbd63f018
# (x / 7.142) is only a guess, cycles usable range is (0.0 -> 0.5) ma_wrap.normalmap_strength = elem_props_get_number(fbx_props, b'BumpFactor', 2.5) / 7.142
Since I'm not familiar with the .fbx format, I can't tell if there is a use case where dividing by 7.142 would be necessary. The fact that the values don't match after import and that the range of the strength is actually [0.0, 1.0] suggests that this line is wrong. It may also be that Blender's exporter code makes different assumptions than the import code.
Exact steps for others to reproduce the error
- Create a material with an Image Texture node, connected to a Normal Map node, which in turn is connected to the normal socket of the Principled BSDF node.
- Export the object as .fbx
- Import the .fbx file
- Verify that the strength of the Normal Map node is not the same
Project after import