Page MenuHome

Use Nodes clears Base color
Closed, ArchivedPublicDESIGN

Description

System Information
Operating system: Windows 10, Debian 10
Graphics card: Multiple

Blender Version
Broken: 2.91.0 alpha (#e414afbaf668550844451b1ca0c4c30541f9827d)
Worked: 2.81a

Short description of error
When clicking on "Use Nodes", the materials base color attribute gets not passed to the BSDF_PRINCIPLED node.

Exact steps for others to reproduce the error
Create a material, assign a base color, click on Use Nodes.

Event Timeline

I can't reproduce this. You can assign the color when Use Nodes is toggled off and the base color is correctly assigned. Activating it afterwards doesn't change the base color. I also couldn't reproduce the issue in your other ticket all colors are printed correctly.

I've tested this with a build based on 8f545375f9f6

Philipp Oeser (lichtwerk) closed this task as Archived.Aug 26 2020, 1:36 PM
Philipp Oeser (lichtwerk) claimed this task.

Cannot confirm that this worked in 2.81a (and I dont see relating code that would do this)

I think these two systems are different enough to not sync the color automatically, so there might be cases where you actually dont want that kind of behavior.
To me, this sounds like a request for modified/improved behavior and not a bug in current behavior. Closing as this bug tracker is only for bugs and errors.
For user requests and feedback, please use other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests
For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug

(feel free to comment again though if this really worked in 2.81a, we can always reopen in that case)

for mat in bpy.data.materials:
	mat.use_nodes = True
	principled = next(n for n in mat.node_tree.nodes if n.type == 'BSDF_PRINCIPLED')
	base_color = principled.inputs['Base Color']
	value = base_color.default_value
	print(mat.name + ", " + str(value[0]) + ", " + str(value[1]) + ", " + str(value[2]) + "\n\n")

If base color was set before activating nodes, this does not print the correct base color values in 2.9, but it does in 2.8.

Background: I imported an IFC file with IfcOpenShells BlenderBIM and then ran this code.

@Domenic Jahn (Kruspe) Works fine in my build. I've create three materials each with a different base color and it prints the correct color values. It didn't make a difference whether use_nodes was previously true or false.

@Robert Guetzkow (rjg) Okay. I'll further investigate and make a comment if I know why this is happening.

This GIF shows the difference.

@Domenic Jahn (Kruspe) I see, you're not changing the base_color property of the Principled BSDF, but the diffuse_color of the material (which is labeled "Base Color" in the UI). Changing that has no influence on the nodes by default, not in 2.9x, 2.83, 2.82 or 2.81.
Perhaps you had an add-on in 2.81 that copied that value over. Another strange thing I noticed is that your nodes aren't visible when use_nodes is disabled.

@Robert Guetzkow (rjg) Thanks for clarification. I can now confirm that the BlenderBIM extension is causing this. With newly created objects (not imported IFC), Blender behaves like you've mentioned.