# USD or Alembic
Multiverse version 6 introduced a new multi-threaded architecture which is natively based on USD. Multiverse reads and writes 100% native USD files, it is by consequence a USD-first software: because of the many advantages of USD we recommend to use USD rather than ABC whenever possible.
Multiverse can also read Alembic files (Ogawa backend), however it does not write Alembic files. Alembic support should be considered a legacy feature.
Note
Alembic data is read through the USD API via a USD plug-in, this means that under the hood it is actually interpreted as true USD data, or in more loose words it means that when you are reading an Alembic file, you are already using USD.
# Compatibility
Read | Write | |
---|---|---|
USD | Yes | Yes |
Alembic (Ogawa backend) | Yes | No |
Alembic (HDF5 backend) | No | No |
Alembic (Git backend) | No | No |
# USD
When using USD we recommend you to use the .usd
file extension for production
(.usd
files generated by Multiverse are binary, just as .usdc
files).
You can use also .usda
ASCII files as long as no heavy data is contained, and
for manual authoring, inspection and debugging purposes. For example you can
write a composition to .usda
and see how the composition is structured.
There are 4 types of USD files:
Type of USD file | Purpose | Notes |
---|---|---|
.usd | Production | When doing any Multiverse Write operation to a file with extension .usd you will effectively generate a binary file (just as a .usdc file). |
.usdc | Production | This is a “explicitly declared” binary file. We recommend to just use .usd for simplicity. |
.usda | Debug/Inspection/Understanding | This is a ASCII file, useful for debugging and understandings. |
.usdz | AR (Augmented Reality) | This is a special archive for AR purposes, especially useful on iOS and macOS. |
USD offers many advantages over Alembic:
- more flexible layering (sparse overrides)
- scene composition via references and payloads
- non-destructive edits as overrides
- efficient and fast "point instancing"
- lower file size
- lower memory impact
- faster reading and procedural rendering
- faster writing
- ability to write as ASCII for understanding, inspection and debugging
- more primitive types such as lights and materials
- ability to re-time and request sub frames on file-per-frame sequences
- active dev community
- brighter ecosystem and future
- custom metadata such as the one written by Multiverse write operations
- easy to add custom attributes
- variants
# Alembic
Alembic .abc
assets are read by Multiverse as a plug-in through the USD API:
this means any Alembic file you read will be working internally as true USD
data.
The sole advantage that Alembic can offer compared to USD is:
- I/O with legacy / older DCC applications
Alembic Layering
When layering Alembic files you have more restriction on how to layer, meaning you always need layers containing topology and mesh definition. So if you want to layer multiple Alembic files for example containing UV, points and etc, make sure they are written with their topology.
# Converting ABC to USD
You can convert your pre-existing .abc
files to .usd
files easily using the
usdcat
command line utility that ships in the /bin
folder of the Multiverse
distribution, e.g:
# Windows
DOSKEY mayapy18"C:\Program Files\Autodesk\maya2018\bin\mayapy"
mayapy18 "C:\Multiverse\bin\usdcat" -o output.usd --usdFormat usdc input.abc
# Linux
alias mayapy18="/usr/autodesk/maya2018/bin/mayapy"
mayapy18 /opt/multiverse/bin/usdcat -o output.usd --usdFormat usdc input.abc
# macOS
alias mayapy18="/Applications/Autodesk/Maya.app/maya2018/Contents/bin/mayapy"
mayapy18 /opt/multiverse/bin/usdcat -o output.usd --usdFormat usdc input.abc
2
3
4
5
6
7
8
9
10
11
TIP
Make sure to set up the environment correctly as usdcat is a python program and
requires you to run them through mayapy
and have a correctly set PATH
and
PYHTONPATH
(according to your platform installation instructions), see the
Environment Variables documentation.