One material → 4 textures → apply to 4 different objects (optimize material count)

Hey everyone,
I’m working on an ArchViz scene and trying to keep things light and organized.

Here’s what I’m trying to do:
I want to create 1 single material that contains 4 different texture sets (BaseColor / Normal / Roughness etc.) and apply it to 4 different objects, where:

  • Object 1 uses Texture Set 1
  • Object 2 uses Texture Set 2
  • Object 3 uses Texture Set 3
  • Object 4 uses Texture Set 4

All of this without duplicating materials, rebaking textures, or joining objects. Ideally, the objects remain separate.

I’ve tried a few things so far:

  • ColorRamp masks
  • Mixing textures using Object Info → Random

The tricky part is:
:point_right: I need a way to tell the shader which texture to use for each object in a controlled way

So my question to the community:
What’s the best / cleanest workflow for switching texture sets per object inside a single material?
Some ideas I’ve thought of:

  • Using Object Info → some ID value
  • Custom property or attribute per object
  • Or any other production-friendly method

The goal is to reduce material count and optimize the scene, while keeping everything flexible.

Any advice, tips, or node setups you’ve used in production would be amazing.
Thanks so much!

Welcome :tada:…

you might want to use different areas in the UV space for this and some texture atlas or even UDIMs.

Using an object custom property works fine, together with the Attribute node.

The only problem is that if you have too many objects, you’ll have to add the property to all of them manually…
Or write a small python script to do it over a selection of objects.