So I am trying to get 3 different shaders on same label. So one is glossy, one mate and another one metallic. I tried using add, mix shader and what it does is just making shaders blended. I would like to have all of the at 100% on top of each other. As you see on the test image Red shader is transparent instead of 100%. How do I do this?
1 Answer
You can use a mix shader with the two label shaders as the shader inputs, and a black/white image as the factor input on the mix shader.
On the black/white image, where there is black, there will be 100% of one label. Where there is white, there will be 100% of the other label.
Edit to elaborate;
To achieve this result;
I used this node setup;
And these black/white textures;
I have packed the .blend file for examination:
Explanation
So, most of this is just simple UV mapping and textures.
- The 3 label textures are fed UV Mapping nodes which are, themselves, all fed the same Texture Coordinate node.
- There are two additional textures (which I painted directly in blender, but you can create them however you want) that are just black/white images, which define values between 0 and 1 (you could technically use some shade of gray to partially mix the textures, but since you specifically don't want that, you'll want to use either flat black or flat white)
- I pass the black/white images through a RGB to BW converter because technically they're color images, and we just want values to feed to the MixRGB nodes (which can be found in the "color" section). This is the part right here that allows you to mix these labels without creating separate sharers for all of them. Important note: I noticed that you wanted one shader to be glossy, and another to be more diffused. This method can technically make that happen, but it would be much easier to use mix shaders for that. Happily, the black and white image examples in this file would work the same for mix shaders as they would for MixRGB nodes.
Also, on the black and white images; You'll see that one of them has white on the top 2/3rds, and the second has white on only the top 1/3rd. This effectively tells the first mix "Yes, also pass through the top third for later mixing"
Notes
I did this really quickly and dirty. If I'd spent more time on it, I would have defined separate UV maps for all the labels and the black/white mix value textures. Since I didn't do that, I used the UV Mapping nodes to squish the labels to the (mostly) correct proportions, and move them up and down on the (very tall) "can".
-
$\begingroup$ That will take some time to make 3 shaders for labels and one shader for glass and all of them in 100%...... Why they made it so complicated..... $\endgroup$ Commented Apr 2, 2020 at 16:00
-
$\begingroup$ I'm at my main workstation now, let me whip up a possibly faster solution (stand by...) $\endgroup$ Commented Apr 2, 2020 at 16:07
-
1$\begingroup$ Ty so much Alexander. I will try to do it this way and measure time. I am a packaging designer and I can't afford to spend to much time on this since there are 3 more designers working with me that I have to attend with 3D. I think it will still take a lot more time in comparison to keyshot. $\endgroup$ Commented Apr 2, 2020 at 17:08
-
$\begingroup$ Of course. If you found this answer helpful, please mark it as the accepted answer :) $\endgroup$ Commented Apr 2, 2020 at 17:09