2
$\begingroup$

I can understand why instancing reduces the amount of memory used since you don't duplicate the polygons of your scene, you simply reference them from multiple locations in the scene.

From a technical/hardware point of view (because I guess that's what it's going to come down to), how does it improve render times though? As long as you're not running out of memory without instancing, it shouldn't change anything?

Is it because instancing allows for a better use of the CPU/GPU cache since the exact same memory locations are accessed?

$\endgroup$
4
  • 1
    $\begingroup$ To my poor understanding, reading and loading/unloading data takes time. Calling for a new data load takes time. So the bigger and numerous you have, the more time it takes. $\endgroup$
    – L0Lock
    Jun 28 at 14:28
  • 1
    $\begingroup$ Forgot to mention: when rendering animation, data is loaded at the beginning of each frame, unless you enable persistant data which will load data only at the first frame but at the cost of a longer first-load time, memory overflow, and historically had some data corruption issues sometimes. $\endgroup$
    – L0Lock
    Jun 28 at 18:38
  • $\begingroup$ @L0Lock Makes sense. Maybe instancing doesn't improve render times "explicitly" in the end but only "implicitly" thanks to the reduction of data transfers. I can't really test it myself on a Blender scene unfortunately, I'm not that good of a Blender user... $\endgroup$ Jun 30 at 8:10
  • $\begingroup$ Imagine yourself ordering printing paper online. Do you prefer to make 1 order of 100 pages, or 100 orders of 1 page? Also you pay the same amount of delivery fee per order. $\endgroup$
    – L0Lock
    Jun 30 at 13:31

0

You must log in to answer this question.

Browse other questions tagged .