Improve RAM usage in Blender

During a preliminary discussion I proposed some solutions, but they would need to be verified if any is the correct approach.

In CAD every object is unique (has to do with bill of materials and traceability) the actual geometry could still be the same. For example bolts could to be addressed individually but the geometry can still be shared.

Blender does cache GPU data per mesh even if they are identical. This could be limited by using instancing, but that is manual work ATM.

When focusing on linked static data we could reduce the memory by reusing identical buffers. this could be detected during loading. GPU buffers might also be shared in this case. When user adds an override the buffers should be re-loaded or duplicated.

In Eevee we could optimize this even further using instanced drawing.

CrowdSim3D does a similar approach where buffers and materials are reused when adding variations to a crowd.

13 Likes