Blender Git Commit Log

Git Commits -> Revision c409adf

March 26, 2015, 13:13 (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: c409adf4c80a361c37481a43e3094f9d2fde73c5
Parent Commit: 4f326e5
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)

3 Modified Paths:

/source/blender/pointcache/alembic/abc_mesh.cpp (+14, -2) (Diff)
/source/blender/pointcache/alembic/abc_mesh.h (+5, -0) (Diff)
/source/blender/pointcache/alembic/CMakeLists.txt (+2, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021