4

Just used link objects (Ctrl+L). It worked as promised. It kept all attributes and orientations of replaced objects while changing the mesh to the replacement object.

Only baffling thing is file now only size of replacement object (2MB) even though about 30 objects in scene... original file before change was 260 MB... to test it I copied/pasted replaced object in new file and it seems ok with same size (2MB).

Did another test using monkey mesh--by herself, the file = 99KB... the file with 4 duplicates and original mesh (total 5 monkeys) = 187kb... using link objects replaced 4 with 1 = 101KB.

Why the difference and will objects generated with linked objects cause problems if used in other scenes?

chicks
  • 504
  • 2
  • 8
  • 17
dino808
  • 123
  • 1
  • 6

1 Answers1

3

When you are choosing to link data between objects you are telling Blender that these objects share the same data. It's not just that when you edit one object Blender will edit the other object to match, it's that they both reference the same data.

To explain this further, imagine 3 objects, each with their own object data:

enter image description here

You can think of this as 6 units that Blender has to save: 3 object data blocks and 3 object blocks.

Now, if were were to link the data of these three objects it would look like this:

enter image description here

Now there are only 4 units Blender has to save: 1 object data block and 3 object blocks. Obviously, only having to save 4 instead of 6 blocks of data will result in a smaller file.

The more objects that share each other's data, the more memory is saved.

When objects that share data are joined, you can imagine Blender first separating all the data so each object has its own object data (like image 1) and then joining the objects together. Yes, that would result in only 2 data blocks (1 object and 1 object data), but the object data would now contain 3 times the number of vertices (from merging the 3 separate object data blocks), resulting in the file size going back up.

To summarise, if objects are using linked data, the data is shared so the file will be smaller, but when objects are joined, any memory sharing is lost as all vertices (and any other data) are joined into one object data block.

There shouldn't be any trouble with using linked data in another scene, the only issue that can occur is forgetting the object is linked, editing the object and then realising all the other objects have now been edited, which might have been unintended.

Ray Mairlot
  • 29,192
  • 11
  • 103
  • 125
  • Brilliant, Ray. Even I can understand your answer...but it begs a follow up question--why not or how can blender use this to intentionally shrink file sizes? My blender files can get unwieldy...is there a way to consolidate object data to share with identical objects on purpose? – dino808 Jan 16 '18 at 00:49
  • @dino808 There is no current way, as far as I am aware, for blender to automatically detect objects are identical and should therefore share object data, if that is what you meant. – Ray Mairlot Jan 16 '18 at 13:07
  • @dino808 By the way, if you feel this, or any answer on your other questions, answers your question, you can mark it as 'accepted'. See: https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Ray Mairlot Jan 16 '18 at 13:07