Overriding Instanced Mesh Data

It was explained towards the end of video three that there is a way to override the linked behavior of instanced data that belongs to a specific instanced object by changing the drop down in the materials property editor from 'data' to 'object.' The material will no longer be nested under mesh data and will now be visible as if it were a sibling to mesh data. What exactly is the relationship this new (un-nested) material has with the rest of the object at this point?

Thanks,

Nick

  • Martin Bergwerf replied

    Hi Nick,

    that is not something that is easily explained.

    Simply put, each Object has it's own coordinate system, which can be moved, scaled and rotated (these things are then done in Object Mode), without changing the position of the Vertices in the Mesh Data.

    The Mesh Data is a list of the Position of the Vertices and how they are connected by Edges and Faces.

    If two or more Objects are Linked, they have only 1 list with all the Mesh Data, that they both (all) use.

    If the Material is stored in the Mesh Data (which Faces use which Material), it is part of that Mesh Data list, so Linked Objects use the same Materials.

    But you can also tell Blender to store the information, which Faces get which Material per Object, just like Linked Objects can have different Location Rotation and Scale, they can now have different Materials.

    By the way, Modifiers are also per Object, so Linked Objects can have different Modifiers.

    I hope that helps a bit.

    1 love
  • Omar Domenech replied

    Martin explained it perfectly. I'll try to explain it more lame, just in case. When you are in object mode, it's like your mesh object is a box, and when you go into edit mode it's like opening the box to have access to its contents. Of course in this analogy the contents of the box are vertices, edges and faces. But also in this analogy, the contents of the box define the shape of the box outside, if the contents inside (edit mode) are shaped like a square box, then the box shape outside will be squared, if the contents inside form a triangle, then the box outside will be triangle shaped. So when you are in object mode you're basically seeing a container. 

    Object mode = A Container

    Edit mode = The Data inside the Container

    A material can be assigned at the object level or at the data level. 

    When two objects are linked, meaning they are sharing their data, there's two objects but they have the same data inside, so it's two objects, or two boxes or two containers, but one data being used, and by definition those objects will have the same shape, because their data inside is the same... so them being linked, if your material is set to be on the data, then those two objects will share the same material also. Because it is at the data level of the mesh the material is being assigned to and there's only one data, so they will have the same material. If you have 20 linked object and all of them the material is set to data, all the 20 objects will have the same material. If you change the material in one object, all the other objects will have their materials changed at the same time, because they are all sharing the same data, it's 1 data and 20 objects. Material is at the data level, so they all change at the same time. Try it out for yourself and see. 

    But if out of those 20 linked objects, in one of them you change the material from being set at the data and set it to object, then the material will be at the object level for that object, and remember, at the object level they are separate objects, so now that one can each have it's own separate material, because at the object level they are separate objects nonetheless, with their own coordinate system, their one position, rotation and scale, it's ONLY at the data level that they are one. 

    Do the experiment, have a cube, have 5 linked duplicates of it, be sure the material is set to data, change the material in one and see the others change. Take one of those cubes and set the material to object, see now how the other 4 will share the same material and the one that you set to object you will be able to apply any material you like and the others wont change. Go into edit mode and see if you manipulate the vertices, all the 5 cubes will still change their shapes. 

    1 love
  • Tom Fransson(tfsuper3d) replied

    Hi Nick!

    Just a side note here. For an instance you can have two types of slot list (they are separated by an indent). One that are shared with the original and one that are not. If you want to add a new slot that are not shared with the original you select a slot that are not (a slot that you have override, that is) and then add new slot. If you select a slot that is shared with the original and add a new slot, then that will also be shared with the original.

    Hope that make sense

  • Tom Fransson(tfsuper3d) replied

    Forgot to say that the indent is only in the outliner :)

  • Martin Bergwerf replied

    And here is all that information in a screenshot:

    Object Data.pngThe Torus, Suzanne and the Cube all use the Cube's Mesh Data; see the list of Vertex Positions in the Spreadsheet.

    Suzanne is Scaled and Rotated and uses the Cube's Material, but the Torus uses it's own Material. (Watch the Material position in the Outliner!)

  • Tom Fransson(tfsuper3d) replied

    Thumbs up Martin

  • Martin Bergwerf replied

    Or an even better picture (notice that the Mesh Data Material is still there on the Cube's Mesh Data that is being used by the Torus, but the Torus uses the Object Material instead):

    Object Data.png