Scenes that share objects but have different materials

I’m trying to set up a blender file to have 1 set of object data which is then linked to multiple scenes. Each scene will have different materials assigned to the objects plus additional lights , cameras, background objects added that are unique to that scene. (Example image below)

Can anyone share a link or guide me to a tutorial that shows how to do this?

I’ve googled this and tried to create different scenes using materials (data vs object selector) but every time i change one scene the material in the original also changes. I also tried linking files and using library override but that would not allow me to assign a new material to the linked object.

the only way i’ve been able to create these different scenes is to replace all the materials on every object and i’m hoping there is a better way of doing this.

Add images

It’s not as easy as clicking on this to get a single user copy is it?

i tried making single user copies but when changing between 2 different scenes the material was always linked.

i can make a “full copy” scene but that just duplicates the geometry.

Hey sorry, I spent close to an hour on this and can’t seem to figure it out… maybe someone else with more knowledge will come along

Thank you, I appreciate it!

Can I bump this? I’m also interested in finding a solution.

When it comes to product visualization, it would be nice to have, say a blue car in one scene and the same car, only yellow in another…

You can’t have a shared object to use different materials per scene. The objects are stored globally and shared by the scenes and the collections.

You could write some Python script to handle material updates (depending on how the scene change happens) but it won’t be ideal. Your best bet is to use “linked” duplicates and assign materials on those instances at object level.

You can also use Geometry Nodes to create instances with certain materials.

So, in that case, if you update the geometry then the duplicates have to be reduplicated?

Linked duplicates are instances. If you edit the mesh data of the original mesh then the duplicates will reflect those changes. These are only limited to the mesh level data like vertex positions, weights etc.

The duplicates can hold some data independently like the material data if you apply them at object level instead of data level.

I guess I was trying to draw a distinction between a “duplicate” and a “linked duplicate”.

Yes, sorry I did not make it clear. Edited my reply.

thank you all for the info! I’m also looking into linking between 2 different blender files to see if i can accomplish this.

ex: have a base file with the geometry info and then link into 2 or more blend files and try to add different materials that way. So far no luck, but i’m gonna keep looking.

It would be nice to have for example an object material and a “jacket material” that could be applied over each object in a different scene.

Just so you know, if you don’t reply to someone specifically or quote them, they will not be alerted to your post.

Isn’t that a huge drawback of Blender, or how do people who want to render a blue car and a yellow car do it without swapping materials and using fake users, etc, etc (ie. tricks that are alien to someone not used to the weirdness of Blender)?

I have been reading this thread and did some experiments with no success.
Today it occurred to me that geometry nodes are a solution. You will have to use Blender 3.0 or 3.1

In the second scene do not use your object, add a plane (or any object), use the object info node to summon the geometry of your object, then set a new material! The plane with the geonodes shares the geometry but not the material, any change you make to the original geometry will be reflected. :smiley:

There are loads of people using geonodes for incredibly complex things, but I think they can be a solution to many simple problems as well.

It is a design decision I guess. It is not a drawback in my view.

I previously mentioned that you can achieve it with Geometry Nodes. You can also use Animation Nodes or Sverchok to create smart instances.

1 Like

I missed that bit! :upside_down_face:

1 Like

That sounds a bit convoluted, and none of this will make sense to my coworkers who are people not familiar with mesh based 3D software and nodes, though.

Guess I’ll have to look and see what add-ons are available that improves the Ux around this (and perhaps multiple camera setups and render queues as well).

The linked duplicates is a pretty good solution as a regular method. A linked duplicate won’t hold any extra memory and can be linked or moved to the other scenes independently which addresses the OP’s problem.

Node based solutions also are not that weird in my view, especially using Geometry Nodes now because it is a native and a really fast solution. DNorman already showed a basic setup.

One can also use basic switches in a geonodes graph, that way the user can switch the object or the material from the modifier’s pane.

Here is a demo of it.

Hi, I found a workflow for this using instances and materials linked to object, not to mesh.
the steps are easy enough. So after you create a duplicate copy of the scene:

  1. Delete objects to be modified from the scene B and go back to scene A
  2. Duplicate linked (make instances) all the objects that you need to change materials
  3. While the instances are still selected unlink datablock of the materials (the x in the image) image
    4.Then link the instances to the second scene:
    5 Delete the instances from the scene A

You can use a linked copy of the scene but instead of deleting at point 1 and 5 you will need to hide the objects.