Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion export/cycles_node_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,32 @@ def _node(node, output_socket, props, material, luxcore_name=None, obj_name="",
}

# Attach these props to the right-most material node (regardless if it's glass, disney or a mix mat)

# Fix for issue #1091: Only add emission if actually used
# Blender 3.6 uses "Emission", Blender 4.0+ renamed it to "Emission Color"
emission_color_socket_name = "Emission Color" if "Emission Color" in node.inputs else "Emission"
emission_color_socket = node.inputs[emission_color_socket_name]
emission_strength_socket = node.inputs["Emission Strength"]

emission_update = {}
color_is_linked = emission_color_socket.is_linked
strength_is_linked = emission_strength_socket.is_linked
color_default = list(emission_color_socket.default_value)[:3]
color_is_nonzero = any(c > 0 for c in color_default)
strength_is_nonzero = emission_strength_socket.default_value > 0

if color_is_linked or strength_is_linked or (color_is_nonzero and strength_is_nonzero):
emission_color = _socket(emission_color_socket, props, material, obj_name, group_node_stack)
emission_strength = _socket(emission_strength_socket, props, material, obj_name, group_node_stack)
emission_tex_name = luxcore_name + "_em"
props.Set(utils.luxutils.create_props(
"scene.textures." + emission_tex_name + ".",
{"type": "scale", "texture1": emission_strength, "texture2": emission_color},
))
emission_update["emission"] = emission_tex_name

definitions.update({
"emission": _socket(node.inputs["Emission Strength"], props, material, obj_name, group_node_stack),
**emission_update,
"transparency": _socket(node.inputs["Alpha"], props, material, obj_name, group_node_stack),
"bumptex": _socket(node.inputs["Normal"], props, material, obj_name, group_node_stack),
})
Expand Down