Alembic USD Plugin
The Alembic USD plugin is not built by default in the USD CMake configuration, ensure that you have enabled this in your build with -DPXR_BUILD_ALEMBIC_PLUGIN, also ensuring that you have the prerequisite software, Alembic(v1.5.2) and HDF5(v1.8.11) installed. Also ensure that you have correctly set your environment variables:
|PYTHONPATH||This is a path list which Python uses to find modules.||$PYTHONPATH:USD_INSTALL_ROOT/lib/python/|
For more information see our page on Advanced Build Configuration.
As shipped, USD supports its own ascii (usda) and binary (usdc) file formats. However, it is possible for USD to support additional formats by providing it with a custom file format plugin. One of these plugins, usdAbc, which provides the ability to interact with Alembic files, is included in the pxr/usd/plugin directory of the USD distribution. In this example, we'll demonstrate the extended USD functionality using the existing USD tools.
Let's start by creating a simple USD file (save it as hello.usda):
The previous snippet defined a simple sphere in an ascii-backed USD file. Now, let's use usdcat to convert it to an Alembic file!
Now we can use usdview to view our new alembic file.
We can also convert this Alembic file back to USD using a similar call to usdcat.
In general, Alembic files can be used in place of USD files. There are some caveats to our current Alembic support in usdAbc. For example, we translate AbcGeom Schemas except for FaceSet, NuPatch and Light. Also, we currently don't translate Alembic's notion of Component Ops, instead we currently flatten them into a 4x4 Matrix, this could be added in the future. Finally, while we hope to achieve lossless translation from abc to usd, Alembic files will never perform as well as native USD binary files in composed scenes.