Using Node Groups in Blender is very convenient to simplify and optimize node trees. Having assembled a universal combination of nodes into a node group, we can easily use this group in another shader, quickly obtaining the desired result without the tedious assembly of the same nodes each time.
However, the benefits of Node Groups do not end there.
One of the features of node groups is that each copy of a node group, no matter where and in what shader it is used, is an instance. Essentially, all copies of a node group point to the same node tree, and this can be used!
For example, let’s take “Suzanne” with the simplest shader:
If we have several objects, and we want to make them all the same color, the easiest way is to assign them all the same material.
Now, we can flexibly adjust the color on all objects at once, by changing the color in the Diffuse BSDF node of the material. In this case, it changes on all objects at once.
But what if each object has its own type of material?
If we want to change the overall color of an object to a new one, we need to edit each material of each object and make a color adjustment.
But what if there are a lot of objects? This is where node groups can help.
Let’s wrap the Diffuse BSDF node to a node group by selecting it and pressing Ctrl + g. If automatic connections have been created between the Diffuse BSDF node and the Group Input node, delete them.
Now, replace the Diffuse BSDF node with the created node group in all materials.
Since each node group is an instance, everything that we change within one instance of this group will change in all others.
By changing the color of a Diffuse BSDF node within one group, the color changes for all materials that use this node group.
If we need to separate a node group from all its other instances, we just need to click on the button with a number next to its name.
The node group becomes a complete copy and ceases to be associated with all its previous instances. However, any copies of this group will also be its instances, until the moment of separation.
Node groups as instances work both in Shader Nodes and in Geometry Nodes.