February 06 2016

Particle instancing to save Cycles memory

When rendering a scene to Blender Cycles with lots of vegetation, we noticed how it took so long to load the geometry into the BVH. We also noticed a string of text saying "0 duplicates". After googling a bit, we found this post in BlenderArtists, advising strongly to use particles instead of linked copies.

After tinkering a lot with the settings, here is how to get lots of objects aligned with a master axis (in the case of the images, Z).

The idea is to have an object you want to repeat over another mesh. This object should be rotated so that its +Z tip is actually pointing +X. Then you should use it as a Render Object in a Hair Particle System and copy the settings in the screen shots below. 


  1. Example with objects distributed with same rotation and scale.

Screen Shot 2016-02-04 at 01.37.39


2. Example with objects with random Scale.

Screen Shot 2016-02-04 at 01.37.46


3. Example with objects with random Rotation.

Screen Shot 2016-02-04 at 01.37.36


4. Example with objects with random Rotation and Scale.

Screen Shot 2016-02-04 at 01.37.33


With their method, we were effectively using memory optimisation, and complex scene with thousands of objects loaded almost instantly.