If you’re looking for on/off (no alpha blending), then you can have 256 materials just by using each RGB value for a different material.
If you want to blend them, then you’re out of luck because Cyan is a mix of the Green and Blue channels from RGB, and there’s no way to tell whether you meant to mix the G and B textures, or if you wanted the Cyan texture… And even then, no way to tell what you wanted to blend the Cyan texture with.
Well, technically there’s a way. Softwares like Substance Designer can extract any shade of a Clown Mask (Color ID Map) and apply it’s transformations on it.
I guess there should be a way to create a node that act like “Threshold” but for a Float3 instead of Float1.
making a dot product betwen the texture and the desired color will give you a mask. apply a power node to that and you can adjust your threshold(dont forget to clamp the result). not perfect, but easy and fairly cheap.
Thank you for posting this. It is exactly what I’ve been looking for. Can you explain your node flow here? I understand the majority of it, but I am not sure what nodes you’re using for the “Input ColorID Texture(Vector3)”, "Input Color Masked (Vector3), and the “1-x”. I appreciate any help you can give me!
You might also benefit from this function I made. It’s like an ‘if’ node, except you can have a ‘soft’ blend, it supports RGB inputs, and is a **lot **cheaper than using three ‘if’ nodes. (I haven’t checked it in a while, you may have to open it and set the ‘gradient input’ to vector3 to get it to work with RGB)