[Bf-committers] Alembic support in Blender

Lukas Tönne lukas.toenne at gmail.com
Mon Mar 2 19:24:24 CET 2015


It's about to get real!

The Gooseberry team would like to start using the new caching system with
Alembic ASAP. This means that we should make sure Alembic dependencies and
the library itself can be properly built and linked by Blender. First goal
is Linux (since we use it in the Blender Institute), but of course it
should work on all platforms. To avoid confusion i will specify exactly
which versions we need to use.

The plan is to first merge the Alembic branch into our gooseberry branch
for testing and refinement. However, setting up Alembic build systems on
the official buildbot and release build systems would help avoid future
problems and smooth out the procedure of merging with master later on.


As a template for working around build system quirks the usual
install_deps.sh script is available. This builds the Alembic library on a
standard Ubuntu 14.10 installation. In addition, it tweaks a couple of
build files in the Alembic sources in order to disable certain parts that
have badly defined build scripts (examples, tests) - there may be more
proper ways of treating these build file issues.

First a couple of links:

Official Alembic site:
http://alembic.io/

The branch on phabricator:
https://developer.blender.org/diffusion/B/repository/alembic_pointcache/
Can be checked out using:
git clone git://git.blender.org/blender.git -b alembic_pointcache

The main Alembic section of the install_deps.sh script (see XXX parts ...):
https://developer.blender.org/diffusion/B/browse/alembic_pointcache/build_files/build_environment/install_deps.sh;1a9c74a3a8fcd4dda3ec2ca09b3fd00e85cb0627$1733

The Alembic version we use is 1.5.5 (official release), which can be
checked out using mercurial/hg like so:
hg clone -u 1_05_05 https://code.google.com/p/alembic/ <target dir>


The README.txt file in the Alembic source directory mentions the principle
build procedure and dependencies.
https://code.google.com/p/alembic/source/browse/README.txt?name=1_05_05
All of the mandatory dependencies are already part of the standard Blender
dependencies in their required versions, so no major additions other than
Alembic itself should be needed. For reference, here are the required
dependencies of Alembic with their minimum versions (as stated in their
README) and the current versions installed by Blender's install_deps.sh
script:

            Alembic minimum     Blender             Ubuntu 14.10
Boost       1.44.0              1.51.0
IlmBase     1.0.3               2.2.0
HDF5        1.8.9               -----               1.8.12
OpenEXR     1.7.1               2.2.0
zlib        (unspecified)       (unspecified)       1.2.8

HDF5 is entirely optional and can be installed to enable this container
format for file storage. The branch now uses the Ogawa format by default,
which seems to have become the new standard backend (and does not need
additional libraries). The default system version of HDF5 on ubuntu also
seems to work fine ('libhdf5-7' package).


Blender itself has 2 new build options:
WITH_ALEMBIC : Build with Alembic caching support. Currently this is needed
for the branch to work, otherwise there is no available implementation of
the cache interface and a number of functions would probably crash trying
to access a NULL pointer.
WITH_HDF5 : Optional linking with HDF5. This backend is not used atm, so
the build option should not be needed.

New cmake modules FindAlembic.cmake and FindHDF5.cmake have been added to
simplify setting up library and include paths for Blender builds.


I would very much appreciate help in ironing out remaining issues and
getting libraries for OSX and Windows set up.
Thank you!


More information about the Bf-committers mailing list