4
$\begingroup$

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?

$\endgroup$
5
  • 2
    $\begingroup$ That is what linking objects does, it reads the shape information from another file. As such geometry info won't be weighting down your current file. $\endgroup$ Dec 31 '17 at 10:57
  • 2
    $\begingroup$ @DuarteFarrajotaRamos By the fact they mention Ctrl+L I think they're talking about object data linking, not linking between files. $\endgroup$ Dec 31 '17 at 14:22
  • $\begingroup$ Oh I misread then, sorry misunderstood what you meant $\endgroup$ Jan 1 '18 at 1:10
  • $\begingroup$ No problem...so, any ideas? Is there anywhere else I can post this question? $\endgroup$
    – dino808
    Jan 1 '18 at 15:09
  • $\begingroup$ Just joined all objects generated by linking...file size went from 2MB to 61MB $\endgroup$
    – dino808
    Jan 1 '18 at 15:57
3
$\begingroup$

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.

$\endgroup$
3
  • $\begingroup$ 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? $\endgroup$
    – dino808
    Jan 16 '18 at 0:49
  • $\begingroup$ @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. $\endgroup$ Jan 16 '18 at 13:07
  • $\begingroup$ @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: meta.stackexchange.com/questions/5234/… $\endgroup$ Jan 16 '18 at 13:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.