UV coordinates per texture color channel


I am working away on a layered material and am using a texture mask to drive the different layers. I have three different masks in one texture in the R, G, and B channels. I am wondering if it is possible to have separate texture coordinate nodes for each channel, while still using one texture node. I’d like to be able to control the tiling of the channels separately. I am using both tilable masks and one to one textures in the different channels, so I don’t want to tile the whole texture at the same value.

The only way I can think to do it is to just duplicate the texture and only use one channel per texture node, but that starts to get cumbersome (and annoying) for the artist.

Thanks as always!

I think only one way is to duplicate that texture node, anything else that comes to mind makes even bigger mess in materials. You could for ex use texture parameter from collection, but then you need to duplicate it for separate uvs, so result is you have same mess and on top of that 1 more parameter.

But from easy to tweak perspective, you should make exactly that, ie. instanced materials, with variables exposed.

Or you could do custom material function, do that node duplication inside, expose parameters for uv scaling and leave this whole mess inside that function graph. like: expose texture sample; R,G,B & Alpha UV multipliers for input, then expose all channels after uv manipulation as separate masks. This way you connect texture and uv scales and get ready to use scaled masks as result

You can have multiple UV channels and in your material you can use a TextureCoordinate node (the one you use to control tiling) and change the channel for the texture.

Thank you for the fast replies! One question for you Nawrot. Based on what you have said, the function would contain 4 duplicates of the same texture sample node? Do each of these then get a staticMaskComponent node? I am having some trouble visualizing what you have explained, but I think it sounds like exactly what I am looking for.