Is it possible to link two nodes in such a way that if one is changed then the other changes as well?

For example; if I have two different texture nodes, each with the same texture in it, can they be linked so that if the texture in one of them is changed then the other one is changed as well?

This will be really helpful for a material setup that I am creating which requires me to have about 10 copies of the same texture node in different places and groupings.

Thanks for your help!

  • $\begingroup$ are you sure you can't share that texture node in subsequent steps? maybe you can load the texture in one node only and apply any transform or processing to different steps later... this, if all nodes apply to one object only... $\endgroup$ – m.ardito Feb 4 '17 at 12:07
  • $\begingroup$ No unfortunately not... The node setup is for a material base that I can then add to several objects and change the textures for each. Each texture is an image texture so I can't just link a value node to each of them, I want to change the image in one and have it change in all of them, but just for that material. $\endgroup$ – christai Feb 5 '17 at 22:36
  • $\begingroup$ Hope that makes sense to you, I'm not sure how else to explain it ^ $\endgroup$ – christai Feb 5 '17 at 22:36

At first I thought "well, one way would be to use something like a "texture.jpg" name for that texture, and simply change the file that is named like that... that would do the trick, somehow. Other than that, you could probably need to script the change, for all the nodes to load the same texture. I can't think of other ways, atm"...

but then it came to my mind another trick, that could work better for you... here it is: use node groups!

you can set up a simple "image texture node" as a group, by itself.

enter image description here

It sounds absurd, to make a group of just one node, but it isn't: because you can reuse groups on every material you choose, and link it differently to other nodes.

Just select it as Add => Group => "yourGroupName" in the node composition area, and by default it has the same inputs/outputs as the base Texture Image node...

And, when you edit the group (on any node where it's used) you can change the texture, in a single node that's reused:

enter image description here

and, thus, reach your goal:

enter image description here

|improve this answer|||||
  • $\begingroup$ Wow! So simple but so effective! I have one small question though... If I duplicate the material, can I make the image texture for each material be different? So the nodes stay the same within the material but don't affect other materials? Or would I just have to make a different node group? $\endgroup$ – christai Feb 6 '17 at 8:27
  • $\begingroup$ No I think you need a "texture node group" for each independent texture... $\endgroup$ – m.ardito Feb 6 '17 at 8:42
  • $\begingroup$ Oh no... My texture is within another group in several places, which means I can't change the "texture node group" within without changing it in the other materials, right? $\endgroup$ – christai Feb 6 '17 at 8:59
  • $\begingroup$ Okay well I found a solution... Instead of having the image texture inside the group, I have a material node with the texture plugged in from outside the group... Only problem is it keeps crashing Blender!!! Help! $\endgroup$ – christai Feb 6 '17 at 10:11
  • $\begingroup$ ...crashes!? that could be another story, and maybe you can create a new question showing how are you doing that... but you can also create a group containing (nodes + (another) group), so I think it should be possible to create a setup that works... $\endgroup$ – m.ardito Feb 6 '17 at 10:12

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.