1
$\begingroup$

I am new to Blender, so maybe I'm missing something. I'm an expert 3D user with 30 years of experience. I am having a problem with what appears to be a major limitation of the Shader Editor. Namely, it only displays a single shader tree at a time.

How can I edit the shader tree of more than one object simultaneously? How can I use the Shader Editor to share shading nodes between multiple shader trees?

For basic functionality, I need the Shader Editor to work like industry standard 3D applications. There should be no limitation on the number of material shader nodes, trees, or closures visible in the graph, and no direct relationship between what object is selected in the scene and what is visible in the graph.

I know how to pin the graph so it doesn't follow the scene selection. That's not what I'm asking. In that case I am still limited to a single shader tree.

I searched Google, but could only find results on how to assign multiple materials to the same object. That's also not what I'm asking.

Thank you,

Aaron

$\endgroup$
3
  • $\begingroup$ The answer given here is what I'd do as a workaround as well... Apart from that, it's unnecessary to ask a question with demands for Blender to work like industry applications and what you think or wish the limitations should be... read about it here: blender.stackexchange.com/help/dont-ask $\endgroup$ Mar 30 at 6:06
  • $\begingroup$ I'm not going to apologize for pointing out the limitations of the software or how it fails to live up to the reasonable expectations of industry professionals. If we never challenge design assumptions, they will never improve.The process of learning and sharing must not be constrained by arbitrary rules which seem more focused on avoiding controversy than on finding solutions. Sometimes the truth hurts. Neglecting to point out major issues does a disservice to the community. Widespread adoption can only occur if these issues are identified and dealt with. $\endgroup$ Mar 30 at 21:32
  • $\begingroup$ This is a site to help people with problems they have. Most of us people here are users trying to help with their knowledge on how to do things with the given features, not developers looking for inspiration or feedback what they could change. So complaining about missing features is of no use here - it's not a matter of truth that might hurt. Just read the FAQ about how to ask questions and give answers on this site. $\endgroup$ Mar 30 at 22:21
2
$\begingroup$

You can split your screen into as many Shader Editors as you want (which this post explains well) and pin a different node tree to each one. You can also make parts of your textures reusable and instance them in other materials by making them a Node Group. Then a change to the group will be reflected everywhere the group is used.

Say you have a part of a material you want to make reusable:

enter image description here

Select the nodes and press Ctrl + G to make a group.

enter image description here

The inputs and outputs will be made automatically depending on what was already in use.

You can copy and paste this Node Group to other materials, or pressing Shift + A and selecting Group you'll find it at the bottom of the menu. My example has the default name NodeGroup.

enter image description here

You can see it is instanced because it will display the number of users.

enter image description here

You can also see that the Node Group can be used for different things in different materials. You can group up as many nodes as you would like, indeed including BSDFs.

A change made inside the Node Group affects all of these objects.

enter image description here

This is where leaving one Shader Editor pinned inside the group may come in handy. If you want a single user copy, you can make one by clicking on the button that displays the current number of users.

enter image description here

$\endgroup$
9
  • $\begingroup$ Thanks for the suggestion. However, that does not help me at all. I need to connect multiple shader trees together in larger networks. I already know how to create new "Area" panes. As I said, I need to share nodes between multiple shader trees. That means multiple shader trees must be graphed simultaneously in the same space. Splitting the Shader Editor into two, three, ten, or a million windows does not constitute a workaround. Each Shader Editor is in its own space, and there's no shared graph. $\endgroup$ Mar 30 at 21:21
  • $\begingroup$ Use a node group, then. $\endgroup$ Mar 30 at 21:30
  • $\begingroup$ I'm not sure how a node group would help. My limited understanding is that a node group is for containerizing a network to make it appear to be a monolithic node. But that doesn't help me share nodes between graphs, because the graphs are completely isolated from one another. Let's say I have two objects. They need to share a texture. I don't think I can do that. The scope of the graph is a single object. How can I even instance a texture between two different materials? $\endgroup$ Mar 30 at 21:40
  • $\begingroup$ A node group is instanced, so a change inside the node group applies everywhere it exists. You can also make single user copies. You'd have a limited number of external connections for each object $\endgroup$ Mar 30 at 21:43
  • $\begingroup$ I tried creating a node group and adding it to the graph of a second object, but the parameters were not shared. There's no instancing going on. So how do I apply an instanced texture to two different materials? This is such a basic thing, I'm shocked at how difficult this is. $\endgroup$ Mar 30 at 22:00

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.