I am trying to get Group nodes to work in the Shader Editor. All of the documentation and blogs I've seen say that Group nodes are instanced. I.e. if I create a Group node, it will share all parameters with other identical Group nodes in the .blend file. But that's not what I'm seeing. Group nodes are not instances, parameters are not shared, and I'm left wondering if I've done something wrong.

I create a Group node with CTRL+G

I create another copy of that same Group node with the Add menu

I expect the two Group nodes to be instanced, but they aren't. I change parameters on one of them, and it does not affect the other.

Please help.

  • $\begingroup$ I am getting closer to understanding this. Apparently there is a difference between the input parameters exposed outside the Group node, vs. the very same parameters within the contained nodes? I create a checker texture, group it, and the colors on the outside of the Group node do not correspond to the colors in the contained Checker texture. Super confusing. Even if I delete the Input node within the Group, those parameters are still exposed. The exposed parameters are unique to the individual Group node, and they override the internal parameters if an Input node exists. $\endgroup$ – Aaron F. Ross Mar 30 at 23:00
  • $\begingroup$ The noodle connections are premade in some cases and not in others, is what I just found. I'm thinking it has to do with the number of nodes you make the group out of. $\endgroup$ – Allen Simpson Mar 30 at 23:02
  • $\begingroup$ Doing things like specifying min and max values of groups is a bit tricky, see this if you're going to be creating extensive graphs - blender.stackexchange.com/questions/207196/… $\endgroup$ – Allen Simpson Mar 30 at 23:07

This dropdown specifies the Node Tree to be linked within.

enter image description here

Check that both of them have the desired tree.

  • $\begingroup$ Thank you, but both Group nodes are linked to the same node tree. The issue appears to be the unexpected behavior of exposed parameters. Apparently the exposed parameters override the internal parameters. The documentation makes no mention of this. In order to get the functionality I need, it's necessary to drill into the Group and change the internal parameters. Additionally, to prevent confusion, I need to delete the ports on the Input node. This is the only way I can find to simply instance a texture to more than one material. $\endgroup$ – Aaron F. Ross Mar 30 at 23:13
  • $\begingroup$ Ohhh, I see what you are saying now. Yes. That is actually part of their functionality, everything inside is instanced, but everything you can access from outside is the Group Node node itself, and not the linked node tree. $\endgroup$ – Allen Simpson Mar 30 at 23:17
  • $\begingroup$ So, I actually need to ruminate on this for a while, but I think I can make my answers clearer. Thanks for this. $\endgroup$ – Allen Simpson Mar 30 at 23:17
  • $\begingroup$ I have created a feature request blender.community/c/rightclickselect/Jlhbbc I really wish the documentation mentioned how the exposed parameters always override the internal parameters. I can see how that might be useful, but it's not what I expected and I wish someone would have told me about it. This is the only place I've seen where a connection is not really a connection. Ideally it should be optional; do we want Groups to be true instances, or do we want them to allow local variations? $\endgroup$ – Aaron F. Ross Mar 30 at 23:30
  • $\begingroup$ Well, you can define defaults, minimums, and maximums in the n-panel inside the group, but even that process is finicky. See my linked answer in comment above for that. $\endgroup$ – Allen Simpson Mar 30 at 23:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.