I was wondering if it is possible to create a material with another existing material. For exemple I create a fabric material and then I create another material with a node which is this fabric material (same as the way you can add a shader into a shader but at the difference that it is an existing material)
-To use the material index to change material in one click (same way you can change colour with the material index)
-Some material have the exact same setup as other one with only one tweak, like slightly lighter or with an additional texture on top… so if you change the initial material you have to change all the other one by one…
In the shader editor you can create a group, and you can also name that group. Your group will will behave mostly like “a material” and you can plug the output of that group in other nodes setups to achieve somewhat you indicated.
(You can even search the group name when adding nodes)
Some other 3D apps do have a “mix-material” where someone can use other materials to mix them by some controlling element (which can get really weird if you mix mixed materials and then mix them…).
So @Drvquiron’ answer is the best method to prepare some “to-be-mixed” materials or material presets (everything expect the Material Output node) as a group and reuse/ combine them into a new material.
Of course someone has to use the Mix Shader to mix different materials (or rather everything than the Material Output node to do so like i mentioned here:
Note that node groups can provide unique settings to each material by exposing the controllers values inside, or provide fixed settings to each material by not exposing the controllers values inside. The latter can be very useful too.