Hello Alembic Community !
The Alembic team are excited to announce another release of Alembic
which contains many new features, bug fixes and performance improvements.
What's new:
- AbcMaterial. Alembic now supports the concept of a material. This is done by
defining a schema for a material definition which can act as a standalone object
or as supplemental data attached to another object. AbcMaterial also defines
conventions and utilities for binding and resolving marterial assignments
and overrides. We have not gone as far as defining what a material schema should
actually contain (as we did with cameras); instead we allow you to define your
own material "target" to allow all the many variations in material standards
that exist today. However we have reserved the name "abc" for a target
we will define at a later time; the hope is that this material target would
become the standard for material interchange.
- AbcLight. Alembic now supports the concept of a light. Light objects are
distinct objects that contain both a camera and a material schema. The material
on the light controls the shader parameters associated with the light and the
camera can contain all relevant camera-like light information.
- AbcCollections. Alembic now supports the concept of a collection. Sometimes
people refer to collections as "groups" or "object sets" (as in Maya).
- Python bindings. At long last the Alembic team has finally completed the
python bindings to allow scripters to access the full power of the alembic
c++ api. All the new features listed above as well as the layers Abc though
AbcGeom are bound. The base bindings of typed data (including typed arrays)
are pyimath types so if your program can natively create imath data types
there is no performance penalty to convert to and from alembic types.
- Performance optimization. When we profiled Alembic we found that, for some
caches, a great deal of time was being spent in HDF5 functions that access
groups and attributes by name. We now let you optionally write a side car
datastructure within the HDF5 file that maps the HDF5 hierarchy to HDF5 object
references which results in lookups that are much faster. You pay the price
of a slight disk size increase and memory footprint.
- Maya plugin updates. The ".userProperties" compound property that is available
on most Alembic objects is now supported for both read and write with full
support for animated values. Additional parameters have also been added to the
AlembicNode to allow cache retiming along with support for loop, reverse and
bounce.
- Boost removal from the core. We are no longer dependent on boost to give us
an implementation of a shared pointer (for example) so we were able to remove
the dependency on boost while building the core library.
Bug Fixes:
Issue 171:
OScalar and OArray Properties had a scoping issue when parented to the immediate
child compound property of an OObject.
Issue 245:
I<type>GeomParam would match to properties that aren't geom params.
IArrayProperty is always considered a geom param with constant scope.
Issue 253-255
Several bugs involved with the -rm flag on AbcImport have been fixed.
Issue 263
AbcExport UV write fix, loop over all faces, not just the faces which have UVs.
Issue 275
AddGeomToParamListBuilderAsFloat was calculating wrong boundary for the
IV2fArrayProperty.
Issue 280
Accomodate Unicode file names in AbcImport and AbcExport.
Issue 285
AbcGeom/Basis.h was not including Alembic/Util/Foundation.h
Please head to
http://code.google.com/p/alembic to pull from mercurial or
download as a tar-ball.
We look forward to your feedback on the alembic-discussion group
http://groups.google.com/group/alembic-discussionThank you !