Page MenuHome

Exporting to FBX ignores the emission socket on the Principled BSDF
Closed, ResolvedPublic

Description

System Information
Operating system: Linux-5.3.5-arch1-1-ARCH-x86_64-with-arch 64 Bits
Graphics card: Mesa DRI Intel(R) HD Graphics 620 (Kaby Lake GT2) Intel Open Source Technology Center 4.5 (Core Profile) Mesa 19.2.0

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: rBf6cb5f54494e
Worked: (optional)

Short description of error
When exporting an object and material to an FBX file, the Emission socket of the Principled BSDF seems to be ignored, when the other sockets are respected.

Exact steps for others to reproduce the error

Open a new blend file. Create a new material for the default cube.

Plug Image Textures into the Base Color, Roughness and Emission sockets of the Principled BSDF node.

Export the object to an fbx file.

(Optionally) delete the object.

Re-import the fbx file.

Examine the material of the imported object. The Image Textures for Base Color and Roughness are preserved. The Image Texture for Emission has been discarded.

Event Timeline

Bastien Montagne (mont29) lowered the priority of this task from Needs Triage by Developer to Normal.
Bastien Montagne (mont29) edited projects, added Add-ons, Import/Export; removed BF Blender.

That’s more of a TODO than a bug really, that property did not exist I think when the node wrapper was written… Will add it to the tool and the formats that support it (iirc OBJ/MTL also has some emissive info?).

Bastien Montagne (mont29) changed Type from Bug to To Do.Wed, Oct 9, 8:10 PM

@Julien DUROURE (julien) aye, but iirc glTF uses its own 'translation' system, not the node_shader_utils.py, to get shading values out of a node shader?

Right, it's not using it for now.
I need to have a look on node_shader_utils.py because I was not really aware it exists.

@Julien DUROURE (julien) yeah, if you could switch to it (and extend it maybe with extra features you may already have in glTF wrapper?), that would be ideal, since that would leave a single place to handle that conversion between nodal shader and 'old', 'fixed pipeline' shading type…