Blender Git Loki
Git Commits -> Revision 4e0b7d2
Revision 4e0b7d2 by Lukas Toenne (alembic_pointcache) March 7, 2015, 16:56 (GMT) |
Support for CustomData in Alembic caches. This is a skeleton feature that provides a general way of storing CustomData types. Currently only ORIGINDEX layers are implemented, the code is designed to make extension easy. Storing CustomData layers in Alembic is a bit involved because the complex structs often used as customdata need to be de-interleaved for Alembic into a set of POD (plain-old-datatype) array properties. In addition the property names should be unique, so that mapping abc properties back to customdata layers is safe. This works by using 2 levels of compound properties: the first level stored per CD type properties, with a number of properties for each layer of this type, using either a name or index (for unnamed layers). The internal properties can then in turn be compounds, if structs need to be serialized into PODs. Abc property readers/writers are created dynamically for the CustomData compounds. This is necessary because we don't know in advance what kind of data layers a DerivedMesh or other CD user will have, and this can change each frame in theory. Alembic is easier with state data schemes, but using it this way is possible (if somewhat cumbersome). |
Commit Details:
Full Hash: 4e0b7d2f183b7aa5355d0549708cc25beb7a2bb7
Parent Commit: fe840e6
Lines Changed: +425, -2
2 Added Paths:
/source/blender/pointcache/alembic/abc_customdata.cpp (+265, -0) (View)
/source/blender/pointcache/alembic/abc_customdata.h (+139, -0) (View)
/source/blender/pointcache/alembic/abc_customdata.h (+139, -0) (View)