global color, not material

Started by andy.engelkemier, March 12, 2019, 12:33:25 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

andy.engelkemier

I can't quite think of a way of doing this without making an utter mess, but thought I'd ask.

I've got a ton of materials which I will make multimaterials so I can cycle through the variations. BUT, some of them are the exact same material, but with a texture to them. So I need the same color. Yeah, I could make the color an image, but then if I have to change the color slightly, you've got to update them all separately? not sure that's necessary, but it's had issues in the past. That's also not very fast to make changes.

Another thought, not sure if it would work, would be to create a material that's linked in Both materials that has all the colors linked to it, but isn't used in any way. Since it's in both places (are those linked to the library?) I could use them for each material.

Is there an easier way? I'm looking for live links here. So saving to the library still won't really work.

Will Gibbons

You don't mention what kind of texture... color/diffuse texture or bump? If it's a color/diffuse texture, you should be able to use a color composite node to combine a color with a texture. Then, you'd have one texture going into however many color variations you have and one color composite for each color. I think we'd need more information before giving you exact steps. There should be an efficient way to achieve what you want.

andy.engelkemier

I did some experimenting. My issue is that nodes aren't global, so they only exist in their own material. It doesn't seem there is a way to link them to another material.

So I have PurpleGloss on objectA. I have PurpleSatin on objectB. I have PurpleTransparent on objectC. And then I have variations of those that need masks and labels for different objects. And then the client says, we changed our mind. We want magenta. So now I have to change all of them, one at a time.

As I was saying, the only solution seems to be referencing an outside file. Correct me, if I'm wrong.

Esben Oxholm

Quote from: andy.engelkemier on March 14, 2019, 03:00:07 PM
As I was saying, the only solution seems to be referencing an outside file. Correct me, if I'm wrong.

If I understand you correctly, then yes, you would need to reference an outside file.
To the best of my knowledge there is no way to create a global node to use or refer to in several different material graphs. Would be neat though.

DMerz III

I'm such a visual person, it's hard to imagine what you're looking for, but I think I kind of get it.

You could simply copy and paste nodes from one material to another, but those nodes would not be linked. If it were an outside texture, there's been some wishlist discussion about having a "Linked Assets" panel which would make switching out specific input links quicker and in one localized UI space.

Similar to what you'd see in Adobe InDesign or Illustrator with "linked files".

That could be a big game changer. If you knew which link needed to be replaced, and you could say, ok, now replace all instances of this link in the Keyshot document, then bam, full on global change.

andy.engelkemier

I think it already works that way. I don't think keyshot keeps a copy of your texture for every time you reference it. That would make your keyshot file incredibly large.

DMerz III

Quote from: andy.engelkemier on March 16, 2019, 05:58:16 AM
I think it already works that way. I don't think keyshot keeps a copy of your texture for every time you reference it. That would make your keyshot file incredibly large.

If you're replacing the link on the file level (same name etc. and just refresh the link) yes.

But it would be interesting if you could select certain instances and change certain ones, but not others via a single panel, etc.

INNEO_MWo

Maybe the question point in the right direction, but do you ever tried the vertex color node? This can be connected to several nodes in the multi mat graph. And slightly changes can be solved via color adjust node.

DMerz III

Quote from: MWo on March 17, 2019, 12:39:53 PM
Maybe the question point in the right direction, but do you ever tried the vertex color node? This can be connected to several nodes in the multi mat graph. And slightly changes can be solved via color adjust node.

ooo that is an interesting idea!

mattjgerard

Quote from: DMerz III on March 15, 2019, 02:08:56 PM
I'm such a visual person, it's hard to imagine what you're looking for, but I think I kind of get it.

You could simply copy and paste nodes from one material to another, but those nodes would not be linked. If it were an outside texture, there's been some wishlist discussion about having a "Linked Assets" panel which would make switching out specific input links quicker and in one localized UI space.

Similar to what you'd see in Adobe InDesign or Illustrator with "linked files".

That could be a big game changer. If you knew which link needed to be replaced, and you could say, ok, now replace all instances of this link in the Keyshot document, then bam, full on global change.

This would certainly be a huge thing, and tied in with the material manager that we've been asking for, to globally resolve missing textures and such. I can see having referenced matierials being a good thing too, we have a certain number of base materials that we use, but are always tweaking them due to lighting, scene layout etc. Making a global change to the underlying material would a fantastic thing to be able to do. Maybe its a global node library, or just extending the "Linked Materials" concept one more level back to the Material Library.