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)
/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)