0
$\begingroup$

I'm trying to set up an object for product visualisation inside Eevee, I'm used to C4D materials along with using mix shaders to overlay decals in blender. However I need to be able to change a fabric material separately to a decal without duplicating the same adjustments in multiple node shaders.

So as far as I understand it, I need to have 3 slots used (1 is for particles so unless there's an issue with 3 slots being used on one object, it's an irrelevant slot).

The slots are (in terms of a layered approach from outer most layer to the base layer):

Slot 1: Decal/print material Slot 2: Particle slot (for fuzz). Slot 3: Fabric material

Basically, doing this means I can adjust the position & decal/print texture of the print layer & change the fabric material separately, ie one change of the print shader material can be left along as I swap or change the fabric material.

Currently, I can use the slots with the setting set to alpha clip to show either the print + fuzz, or the fabric + Fuzz, but not the Print + fabric + fuzz.

The only alternative I currently have is to create node groups for every fabric inside one material shader, and use the mix shader node for a node group for every print I'd require, however this seems very unintuitive for the required use.

PS: I'll edit with photos when I'm at the computer next, or post them below.

Thanks in advance. I'm coming from C4D, and am used to being able to layer materials in that. I'm assuming it is possible in blender other than just using mix nodes, I've seen tutorials on applying slots to geometry, but that isn't an option given this is for clothing objects. I know multiple UV maps can be used on the same object, but not sure if that makes a difference for slots.

Thanks again.

Update:

These are the original setups:

Print + Particle Material (missing the fabric texture)

Fabric + Particle Material (the blank spot is caused by using an alpha channel to see if it showed the print layer but doesn't)

This is how it should look, this is via the node set up using mix shaders

This is the group set up, it's clean, and I've learned that the unused nodes don't hinder any render performance, but eventually there will be dozens of node groups for fabrics and print materials

This is the fuzz material nodes, each fabric has it's own one as a single one doesn't work for all

This is an example of the fabric nodes inside each fabric group

This is an example of the print group nodes, eventually each node will have different alphas (the designs) that mask around 70 print textures

This is the Print shader used in slot 1, it has the settings set to alpha clipping to hide a black "nothing" colour, shows the fuzz texture from the hair particles, but not the fabric material from the other slot

This shows the fabric material when used in slot 1 along with the particles, but not the print layer from another slot.

This is how they look when using the mix shaders to blend with alpha mask (the intended look)

These are the group nodes for each slot when reduced to 2 slots (one for the materials, one for the particles)

These are examples of the fabric and print node setups inside each group

$\endgroup$
5
  • 2
    $\begingroup$ Welcome to Blender.SE. Using node grups seems the way to go, if build group them correctly, I don't see much difference from a layer sistem. Maybe with some pictures of the current shader setup we'll better understand the seituation. $\endgroup$ – Carlo Dec 3 '20 at 19:35
  • 1
    $\begingroup$ Hi Carlo, big thanks for the welcome and quick reply. I've updated the post with the shaders. Apologies, I did write an explanation of each one in the edit but it doesn't seem to be showing them. In order, the first 2 are the original attempt at using the slots to layer the images, both show the top slot and the fuzz slot from the particles and mask out the alpha from the node, but not all 3 slots. 3rd is the node setup version using mix shaders showing all 3 as they'd be desired. 4 & 5 are the node groups (using just 2 slots). Last 2 are examples of the print group and fabric group nodes. $\endgroup$ – Joe Husband Dec 3 '20 at 20:23
  • $\begingroup$ You are welcome. Don't use the "description" field of the image in the editor (that's the text that appears if the images are not loaded), just write in the main body, under the image. Are you working on an animation? What would it look like? $\endgroup$ – Carlo Dec 3 '20 at 20:24
  • 1
    $\begingroup$ The T-Shirt is an animated alembic file, it has a solidify modifier & subdivision. So it's animated, however the shaders don't need to be animated/jump between materials etc, I would just like a quick way to swap the fabric or print material without having to jump into multiple material nodes and make adjustments. Using the groups would work, but feels like they should be separate materials to switch between rather than nodes to connect. Side note... is there a way to have 2 material editors open at once (ie, slot 1 & 2 open at the same time in different windows)? $\endgroup$ – Joe Husband Dec 3 '20 at 20:31
  • $\begingroup$ I've addeed my opinion. Let me know what you think. I don't think there's a way to show other than the active material slot in the shader editor, but you can make a question about that on this site, maybe someone does... $\endgroup$ – Carlo Dec 3 '20 at 21:19
1
$\begingroup$

Disclaimer: as the question is about workflow, maybe we'll have to change some things about this answer depending on the OP needs. We'll see.

Disclaimer 2: If you are not using the node wrangler add-on yet, that's the time to start. It makes node-inspecting much easier.

I think you can't (and you won't): layering is in the material.

This is the setup I would use for this situation:

enter image description here

The first node (or gruop of nodes) is the shader of the non-decal(layer1), then you have a second node that basdically overlay the shader of the decal in the right places (inside there's a mix shader node and another shader group as shown below) (layer2)

enter image description here

Other shaders have a similar setup: a shader (layer1), if you need the decal, you just add the Decal node (which is the same for all the materials) (layer2).

enter image description here

I would change the material of the model in the material slot on the right. Remember to enable Fake user, or you'll lose them at quitting.

enter image description here


So basically, my "Decal" material is not a material, but a Node Group that contains a shader. Layering happens inside each node group. This way blending can be animated for example linearly, with a mask, ecc... it's more flexible.

$\endgroup$
1
  • $\begingroup$ Thanks for the this Carlo. By the looks of your setup, my solution was very similar (Image 4 in the examples), the only difference was that I have the mix shader outside of the group. I'll do an updated post with annotations for anyone else who follows it, I've found another post from a C4D user asking for a similar solution. My set up in that 4th image has my different fabric group into a mix shader with the decal group feeding with the factor being the alpha from the decal, with the label tag mixed over those. So long as unused nodes don't slow renders it'll do :). $\endgroup$ – Joe Husband Dec 4 '20 at 4:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.