linked materials within multi-materials / material graphs

Started by andy.engelkemier, September 27, 2019, 12:16:12 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

andy.engelkemier

I'd like to be able place a material in a material graph that is linked, mostly for multi-Mats, but also for labels.

Example: I've got this Bright Silver material that is "done" and approved by the brand team. Great, I've got that as one of the versions in 3 different multimaterials, and also on 6 different labels. Aaaaand, brand changed their mind. Now they want Charcoal Silver. Great. So I now have to find every single reference of Bright Silver, and change the settings to Charcoal Silver.
Wouldn't it just be nicer if those were all linked?

But how would you implement that, with how Keyshot works without confusing people? Well, I'm sure there are a few ways, and it should probably be a balance of what works best, and what can easily be programmed right?
If you created a "material instance" node, then you could link to a material that's in your material tree. In the material graph, it would just show as a material instance, and the name. You could change to a different material, but it would only hold one link. Right clicking on that in the material graph might have an option to make unique, which would break that link, and expand the nodes inside the material graph. That is exactly how it works now, so nothing would change in the existing files. It's just that a single node could reference an existing material.

The tricky part is, keyshot Only lists materials that are applied to a part. (One of the worst parts of keyshot in my opinion). If you accidentally assign a different material to all the parts that had that one unique material, it's gone. And if a material only exists in a multimaterial, it doesn't really exist in the scene, only the multimaterial exists. So the best practice would be to Only use the material instance node for multimaterials.

And I guess, to appease both sets of people, if you wanted to "save" a material from a material graph now, you might be able to program something that automatically saves a sphere and applies the material to it, from the material graph. So maybe I made a material for a label, but only exists inside the material graph. I could select that material, right click, and say Save to scene. It would create a sphere, place it in a hidden group (ideally), and create that material. Now that it's a scene material, it could switch my current selection with the new Material Instance node. So I can go make edits there, and it would work for every instance of it.

I have quite a few items, where the same paint is used for entire parts, And for graphics. So those can't be linked currently. And then I also have some where one part is always black gloss. Then other parts might be black, then stainless, then chrome. So that's a great spot for using a multimaterial. The alternative there is just duplicate the part 3 times, and use model sets, but that is not ideal. Multimaterial is definitely a better way to go. But then when someone comes and says the black is actually more of a dark grey, now I have to find all of them and update them. By the end of most any project, I usually end up with 3-5 copies of the same material because of multimaterials and labels. I Really want a way to instance/link those.