Can materials share same centralized base color?


I have a number of materials on the same object, which all share the same base color but have varying other characteristics.
I would like to be able to change the base color for all these materials in one place, leaving the other individual characteristics unchanged. As if the base color where a variable shared between these materials.

Is this possible ?


For 2.91, the way to go is to use vertex colors or drivers, neither option is very convenient. For 2.92, it’ll be possible to use an Attribute node and sample an object’s color through it, or even some other (custom) property (it can’t access that information in 2.91).

What I would do is make an RGB node and then node group it-- just it-- for use in other materials. Run the color to output, and use that node group instead of whatever you’re using to define “base color”.

Anywhere you use that node group, it will be a linked copy. Change the color once, change it for all materials using that node group.

Easier than drivers or vertex color IMO.


I would also do this. You can think of the properties of node group as being like another material, changes to any instance of the node groups internal values will apply to all instances of that node group

Alternatively, you can access the viewport color of the object (Object Properties > Viewport Display > Color) for driving material values using an ‘object info’ .

Good call, I completely blanked on that one.

Ya, definitely the right way. You can also make your fancy shader, group it, and expose only the color to the group’s input, for something like the faces of a rubik’s cube. You can tweak the shader while keeping all the colors fixed.

Thanks a lot !
It couldn’t have been easier.
This forum is awesome.