Blender Git Commit Log

Git Commits -> Revision 781f41f

Revision 781f41f by Kévin Dietrich (master)
March 24, 2021, 13:18 (GMT)
Alembic procedural: deduplicate cached data accross frames

Currently the procedural will add an entry to the cache for every frame
even if the data only changes seldomly. This means that in some cases we
will have duplicate data accross frames.

The cached data is now stored separately from the time information, and
an index is used to retrieve it based on time. This decoupling allows
for multiple frames to point to the same data.

To check if two arrays are the same, we compute their keys using the
Alembic library's routines (which is based on murmur3), and tell the
cache to reuse the last data if the keys match.

This can drastically reduce memory usage at the cost of more processing
time, although processing time is only increased if the topology may
change.

Commit Details:

Full Hash: 781f41f633fc61033423ebae657c0495ab9d131b
Parent Commit: 9b82620
Lines Changed: +104, -42

2 Modified Paths:

/intern/cycles/render/alembic.cpp (+51, -26) (Diff)
/intern/cycles/render/alembic.h (+53, -16) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021