Clone object and share mesh data but NOT material

Hi there

is there a way when you clone an object that the mesh data is linked / shared but you can assign individual materials to the objects?

It seems linking mesh data also included material data!

1 Like

Materials by default are linked to the object data. You can change this per material slot (see a dropdown to the right of datablock name in Materials tab). If you want your materials to be always linked to objects instead of object data, there is a setting for it in User Preferences -> Editing.

Hey Stan

thank you a lot to point this out! I totally overlooked it as I never used it before!

In my work often the mesh data can get updated because of design revisions but the will be the same for each page / rendering.

However materials can be different per shot / page / rendering/

Great I am madly impressed with Blender now even more!

How do I do this in 2.81? Also can someone please explain it in more detail to me, I don’t understand this.

I don’t understand the difference between having material linked to object vs object data. I don’t understand data blocks that well.

In my case I have 8 orbs, all with different materials. (it is a material library) I want to add a plane to my orb, and want all the orbs to get that same plane, so I made 1 such object and then I want to share that objects mesh with all the other orbs so I don’t have to update them all one by one.

(I did not make a new post because this one is on the front page on google as of 2020, and may help others also looking)

It’s done in exactly the same way as described in my initial reply. Per object individually via this dropdown:
image
This needs to be set per each material slot (i.e. individually for ‘Red’ and ‘Green’ on the above screenshot).

Or you can change the setting “Link Materials to” in Preferences → Editing → New Objects to ‘Object’. Changing that will only affect new objects, not already existing ones.

When multiple objects link to the same Mesh datablock, they will, by default, use materials linked to by that Mesh datablock. Meaning that if you change or edit a material, that change will affect all the objects that are linking to that Mesh.

But material slots themselves belong to Objects, not Mesh data blocks. So, changing that setting, you keep using the same Mesh data, but can link each slot to a different material per object.

In your case, some manual updating will still be required, but here’s the general workflow:

  1. Add a plane to one of your objects, in edit mode. Let’s call this object “Source”.
  2. Select all the other meshes, shift+select Source (so that it’s also selected and active) and do a (menu) Object → Make Links → Object Data. This will link all the objects to the same mesh, and editing one will affect the rest.
  3. Still having the same selection, in material properties, per each slot, alt-click the dropdown in the above screenshot and pick ‘Object’ (alt-clicking is needed so that the change is automatically copied to all selected objects). The materials on all objects will disappear, but slots will remain.

The bulk part is done, the rest would need to be done individually. Go over each object and set your desired materials for each slot. When later you would want another orb, pick any existing one and make a Object → Duplicate Linked instead of simple Duplicate.

You can even mix and match. For example, if you want that plane to have the same material between all objects, you can leave its material slot linked to ‘Object Data’.

2 Likes

you can also do it automatically when duplicating with blender options. CTRL ALT U