Grouping nodes can simplify a node tree by hiding away complexity and reusing repetitive parts.
Conceptually, node groups allow you to treat a set of nodes as though it were just one node. They’re similar to functions in programming: they can be reused (even in different node trees) and can be customized by changing their “parameters.”
As an example, say you created a “Wood” material that you would like to have in different colors. One way of doing this would be to duplicate the entire material for every color, but if you did that, you’d have to go over all those copies again if you later wanted to change the density of the grain lines. Instead, it would be better to move the nodes that define the wood look into a node group. Each material can then reuse this node group and just supply it with a color. If you then later want to change the grain line density, you only have to do it once inside the node group, rather than for every material.
Node groups can be nested (that is, node groups can contain other node groups).
Recursive node groups are prohibited for all the current node systems to prevent infinite recursion. A node group can never contain itself (or another group that contains it).
When a node group is created, new Group Input and Group Output nodes are generated to represent the data flow into and out of the group. Furthermore connections to input sockets coming from unselected nodes will become attached to new sockets on the Group Input node. Similarly, outgoing connections to input sockets of unselected nodes will become attached to the new Group Output node.
If you want to pass an additional parameter into the group, a socket must be added to the Group Input node. To do this, drag a connection from the hollow socket on the right side of the Group Input node to the desired input socket on the node requiring an input. The process is similar for the Group Output regarding data you want to be made available outside the group.
Node ‣ Make Group
To create a node group, select the nodes you want to include, then press Ctrl-G or click Group ‣ Make Group. A node group will have a green title bar. All selected nodes will now be contained within the node group. Default naming for the node group is “NodeGroup”, “NodeGroup.001” etc. There is a name field in the node group you can click into to change the name of the group. Change the name of the node group to something meaningful.
When appending node groups from one blend-file to another, Blender does not make a distinction between material node groups or composite node groups. So it is recommended to use some naming convention that will allow you to distinguish between the two types.
The “Add” menu of each node editor contains an “Output” category with node types such as “Material Output.” These node types should not be confused with the “Group Output” node found in node groups, and should not be used in node groups either (only in the top-level node tree).
Insert Into Group
Node ‣ Insert Into Group
Moves the selected nodes into the active group node. To use, select a set of nodes, ending with the destination group node, then, running the operation will move those nodes into that group. The moved nodes are collected into a group of their own to preserve their connection context, having their own group input and output nodes. The group’s existing input and output nodes are updated with new sockets, if any, from the new nodes. The node group must be edited to contain a single Group Input and a single Group Output node.
Node ‣ Edit Group
Go to Parent Node Tree
With a node group selected, press Tab to move into it and see its content. Press Tab again (or Ctrl-Tab) to leave the group and go back to its parent, which could be the top-level node tree or another node group. You can refer to the breadcrumbs in the top left corner of the node editor to see where you are in the hierarchy.
Node ‣ Ungroup
Removes the group and places the individual nodes into your editor workspace. No internal connections are lost, and now you can link internal nodes to other nodes in your workspace.
- Separate P
Separate selected nodes from the node group.
Copy to parent node tree, keep group intact.
Move to parent node tree, remove from group.
Reusing Node Groups
Add ‣ Group
Existing node groups can be placed again after they’re initially defined, be it in the same node tree or a different one. It’s also possible to import node groups from a different blend-file using File ‣ Link/Append.