Blender Git Loki

Git Commits -> Revision 753edaf

Revision 753edaf by Kévin Dietrich (master)
October 29, 2016, 10:23 (GMT)
Alembic: store a pointer to the object reader in the cache modifiers and
constraints.

This avoids traversing the archive everytime object data is needed and
gives an overall consistent ~2x speedup here with files containing
between 136 and 500 Alembic objects. Also this somewhat nicely de-
duplicates code between data creation (upon import) and data streaming
(modifiers and constraints).

The only worying part is what happens when a CacheFile is deleted and/or
has its path changed. For now, we traverse the whole scene and for each
object using the CacheFile we free the pointer and NULL-ify it (see
BKE_cachefile_clean), but at some point this should be re-considered and
make use of the dependency graph.

Commit Details:

Full Hash: 753edafcb77d9aaf07fe869372319b841dd80681
Parent Commit: 0c13792
Lines Changed: +592, -455

22 Modified Paths:

/source/blender/alembic/ABC_alembic.h (+10, -5) (Diff)
/source/blender/alembic/intern/abc_curves.cc (+52, -0) (Diff)
/source/blender/alembic/intern/abc_curves.h (+2, -1) (Diff)
/source/blender/alembic/intern/abc_mesh.cc (+173, -134) (Diff)
/source/blender/alembic/intern/abc_mesh.h (+4, -7) (Diff)
/source/blender/alembic/intern/abc_object.cc (+49, -14) (Diff)
/source/blender/alembic/intern/abc_object.h (+21, -1) (Diff)
/source/blender/alembic/intern/abc_points.cc (+26, -6) (Diff)
/source/blender/alembic/intern/abc_points.h (+2, -0) (Diff)
/source/blender/alembic/intern/abc_util.cc (+62, -0) (Diff)
/source/blender/alembic/intern/abc_util.h (+7, -0) (Diff)
/source/blender/alembic/intern/alembic_capi.cc (+60, -280) (Diff)
/source/blender/blenkernel/BKE_cachefile.h (+2, -0) (Diff)
/source/blender/blenkernel/intern/cachefile.c (+37, -0) (Diff)
/source/blender/blenkernel/intern/constraint.c (+12, -2) (Diff)
/source/blender/makesdna/DNA_cachefile_types.h (+1, -1) (Diff)
/source/blender/makesdna/DNA_constraint_types.h (+1, -0) (Diff)
/source/blender/makesdna/DNA_modifier_types.h (+1, -0) (Diff)
/source/blender/makesrna/intern/rna_cachefile.c (+23, -0) (Diff)
/source/blender/makesrna/intern/rna_constraint.c (+20, -1) (Diff)
/source/blender/makesrna/intern/rna_modifier.c (+14, -1) (Diff)
/source/blender/modifiers/intern/MOD_meshsequencecache.c (+13, -2) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021