← All ideas
  • Published 2 Jun 2018

Material / Shader Instance Node

Just a very simple node that might be useful for all kinds of things. It would allow you to re-use the same material in other materials without having to go through the hassle of creating a group.

It basically just a node with a single shader output and a dropdown to select one of the other materials in the scene. That way it's easier to create hierarchies. You could create one base shader that's the same for multiple objects but has different ones mixed over top for each object.

material_instance.png

84.4%

Development Status: Open

Upvote 27 Downvote 5
mantissa
2 Jun 2018

13 Comments

FreeMind

Would be nice if you could just change the BSDF by a drop-down menu instead of deleting a node, and adding a new one, and then connecting it again. Would save so much time.

1
lsscpp

That is exactly what nodegroups do, with more control. Why should we have a duplicated feature? This would also add a layer of confusion: where would you put it? Among the shaders? And what if there are no other materials other the one where this "meta-shader" is? Also what about volume and displacement? A big No from me

1
mantissa Author

@: I see what you mean, the idea could definitely use some refinement. The current Node system is powerful, but it's a bit cumbersome if all you need is an instanced BSDF.

3rton

@:

  • Easier to use
  • Sure, or if Shader instance isn't acceptable it could just be in the "group" category too as a group instance.
  • I find it pretty hard to imagine that happening except if you delete everything else afterwards but in that case the shader would probably give error color.
  • Could just have outputs for Volume and Displacement if the material it is referencing does.

shrug

valentinwn

Put your shader in a group and rename this group ... "Material".

1
rwees

@valentinwn: Node groups don't work the same, instances are full 'local copies' of that group. Any change won't carry over to other group instances. Having a material in a node would cause it to be a proper instance of a material.

lsscpp

@rwees: Nope! Nodegroups are real instances. Try to change something inside a nodegroup and you will see the change propagated to every instance

1
rwees

@: You are right, apologies. I did actually try before I posted and got results as if they were a copy. I wonder what I did wrong.

davidwallmann1983

would be cool if every material would work like a nodegroup and if we could expose some settings from the material aswell.

1
mantissa Author

@davidwallmann1983: That would be interesting, but couldn't it be replicated with a complex nodegroup off all the individual shaders?

aiduss

i like idea!

davidwallmann1983

yes, we absolutly need this.

aprendizdetodomaestrodenada72

Cool!!!