< Previous | Contents | Manuals Home | Boris FX | Next >

Universal Scene Description (USD)

Universal Scene Description (USD) aims to do just that, be a universal description of a scene, which can then be read by any compatible 3-D application. This is the same goal as the earlier Filmbox (FBX) and then Alembic (ABC) formats. USD was originally developed by Pixar, then open-sourced. Houdini, Maya, and Unity3D are some major apps supporting USD; Nuke is introducing USD support as part of its “New 3-D” system, which SynthEyes’s Nuke exporter can now talk to.

The USD export is quite complete, with a wide set of features, including the export of animated GeoH rigs, vertex caches, normal caches, textures caches (for rolling camera-mapped textures), and projection screen generation. See the tooltips on the exporter control panel for details; they follow the same scheme as other exporters such as FBX, Nuke, AE etc.

Tip: The USD exporter can do anamorphic distance compensation (when the “Fix Anam. distance” checkbox is turned on), generating view-specific vertex deformations for all meshes, as seen from the camera path. There are no separate vertex cache files; this data is in the USD file itself as time samples.

Warning: The USD format only supports image sequences, not movie files of any kind. If you’re working from a movie format such as ProRes, you’ll have to render a sequence (perhaps with Shot/Save Sequence) in order to include your shot in the USD export.

SynthEyes’s USD export directly produces USD ASCII (.usda) files. These are larger than .usdc (“crate”) files, but much easier to generate.

Tip: If your app only offers to read .usd files, change the file extension from

.usda to .usd, then standard USD readers will read them fine. You can change the first line of the usda.szl exporter to do this as part of the export.

If you have the USD Toolset installed on your machine ( USD open source on github, it’s big and complicated and not a part of SynthEyes), you can convert .usda files to the smaller and faster binary .usd (.usdc) files with USD’s usdcat command, for example

usdcat --usdFormat usdc phaseUSDA.usda -o phaseUSDA.usd

You might also use usdzip to convert the .usda files to fully self-contained USDZ format, for sharing or use with Apple’s ARKit. You can also use the usdview tool to examine the exported .usda file without any third-party application.

The USD exporter can automatically run a command at the completion of the export; you can use it to run usdcat, usdzip, usdview, usdedit, etc. You may need to wrap the command in a small script to set up the USD environment properly.

You’ll need to install and compile the USD Toolset on your machine, which can be quite challenging (which is why SynthEyes exports USDA not USDC). Nvidia has some prebuilt libraries for Windows and Linux that may make it easier, though may also be more dated.

Tip: If your favorite 3-D app supports USD, you might check whether it already contains a copy of the USD Toolkset of necessity.

Warning: The USD Toolset is quite particular about the versions of its dependencies, including the exact python version. You’ll probably need to install a specific older obsolete version of python just to run the USD tools. At this writing, for the nVidia downloads, that’s python 3.6.8 (64-bit). Install that python off to the side only for use with USD! Then use a script/batch file to set up to use it like this one for Windows (adjust for your install locations; note that each set statement is a single unbroken line):


set PATH=C:\Code\USD\Python36;C:\Code\USD\Python36\Scripts; C:\Code\USD\bin;C:\Code\USD\lib;%PATH%

set PYTHONPATH=C:\Code\USD\lib\python;C:\Code\USD\python36\lib\site- packages

set USDROOT=C:\Code\USD

You’ll also need to “python -m pip install PySide2 PyOpenGL numpy ” and maybe a few other things.

The USD export has many features, exporting cameras, moving objects, meshes, textures, lights, etc. Here’s a list of things that are not supported and won’t be sent from SynthEyes to downstream apps.

Movie files on the shot (not supported by USD) — only image sequences can be exported.

Unique or original vertex number capability for meshes (USD limitation)

Shadow-casting or -catching information (No shadow rendering in usdview, no shadow-catching support in USD)

No special action for 360VR (No support in USD)

The list may be out of date if you have an updated script; see the beginning of the script for the most current information. And if there’s something the exporter doesn’t do that it should do (and that USD can do), please let us know, preferably with a .usda example!

©2024 Boris FX, Inc. — UNOFFICIAL — Converted from original PDF.