Multi-material where only one color attribute changes?

Started by Anindo Ghosh, April 08, 2022, 10:47:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anindo Ghosh

Hi,

I have a scene with about a dozen objects, which are each a complex material graph, but the only difference between them is one color attribute. Something like a bunch of LEDs in different colors (and shapes).

Is there a way to create a multimaterial in the material graph, such that the rest of the graph other than one color input, is common? For now, I have a dozen near-identical complex graphs cluttering up my multi-material graph window, and they vary by just the color. This would be tolerable if I did not need to go ahead and copy-paste a bunch of graph cards every time I need to change bump maps for instance, for the main material linked to the Surface property. (Yes, I realize I could feed the bump map attribute in from a shared bump map for all the multi-materials)

An ancillary question: Is there a way to feed various color attributes to the color inputs of several cards in the graph, besides using separate Vertex Color cards? It would have been nice to be able to drag-drop a color from the Colors panel of the Library, straight into the material graph.

I'm using Keyshot 10, if that is relevant.

Thanks!

KristofDeHulsters

I don't think it is possible to merge different material graphs, I could have used it too for similar reasons. I think the only way for now is to use multiple graphs. I know that other software packages do handle this better. Maybe it's a good feature for Keyshot to look into.

mattjgerard

For sure, I do this all the time with the 2d mapping node to keep labels scaled properly across mulitmaterials. It does make for a messy Material graph though like you have described. Our constant requests to make the matgraph a lyered thing, or have folders for MM's or somehow hide the inactive materials, all that would help this. Maybe a 2 pane MatGraph that has all the MM's on the left pane, but collapsed to a single "card" when you click on it, it opens up the whole MM for that one in the right pane. So many ways to do this.

I think the vertex color option is the best, but you should be able to feed a single node output to the color input of several material nodes if I'm not mistaken.

Anindo Ghosh

@Mattjgerard Yes, feeding one color to multiple materials is fine. However, in my case, the color is the only thing changing between the materials. See my material graph mess, attached.




mattjgerard

just curious , why do you want all these to be inside a multimaterial? For batch rendering purposes? Don't get me wrong I love using MM's when they are useful, but I do have a preset set of LED light colors that we use in our products and I've found that just keeping separate materials for them was easier to look at rather than the sort pf huge Matgraph grid you have there.

Inside the MM for this thouhg, there was a person on here a long time ago that did this sort of thing somehow using a multi color gradient node that fed many materials, and used the location, scale and mapping of the gradient to place the colors on the objects. He had one gradiant node with 10 colors on it, turned off "blend" so it was a sharp edged gradient, then used the mapping in each material to scale and place the gradient so just that desired color covered the object. Was a neat little trick, but not sure if it would help in your case. I'll try to find the discussion.

But you are rightly demonstrating some of the limitations of the material graph, and this sort of thing for sure needs to go in the suggestion box :)

Anindo Ghosh

Quotejust curious , why do you want all these to be inside a multimaterial? For batch rendering purposes?

Exactly.

The light colors are to be part of Material Ways, such that more than 30 different signage designs can be both displayed and rendered in (almost) all combinations of the 12 available light colors. I'm not looking forward to manually firing off those thousands of renders!