Home

Awesome

USD device for ANARI

Device which generates USD output from intercepted ANARI API calls to, optionally with Omniverse support.

This project can be used purely to output USD files to local disk without any further run- or buildtime dependencies, and does therefore not require the use of Omniverse if not desired. If Omniverse output is enabled, it can be configured to transfer USD data to an Omniverse service of choice.

Prerequisites

On Windows and Linux this library builds against: - ANARI SDK (corresponding to git tagged version of this repo) at https://github.com/KhronosGroup/ANARI-SDK - USD version 23.xx or 24.xx, with (if enabled) OpenVDB 10 or 11.

USD can be built/installed in any of the following ways (depending on desired capabilities): - Get prebuilt USD and optional Omniverse packages according to Downloading the Omniverse libraries - Build USD from source (https://github.com/PixarAnimationStudios/USD/), optionally with OpenVDB support according to Building USD Manually - For release/debug versions, observe the directory structure guidelines in Debug Builds section - (Experimental) Automatic installation of USD as part of the superbuild, see superbuild/README.md

Note that on Linux, GCC only guarantees forward ABI-compatibility, so libraries downloaded from external sources built with newer versions of GCC than the USD device may not link to it properly.

Building the ANARI USD device

From this directory, run mkdir _build && cd _build, after which there are two ways to build the USD Device:

After configuring and generating any of the above builds, run cmake --build . --config [Release|Debug] --target install to build and install.

Usage notes

More details about specific parameters and unsupported features follow below.

Basic parameters

Specific ANARIDevice object parameters:

Specific ANARI scene object parameters (World, Instancer, Group, Surface, Geometry, Volume, Spatialfield, Material, Sampler, Light):

Specific ANARI timed object parameters (Geometry, Material, Spatialfield, Sampler):

For Surface and Volume:

Advanced parameters

ANARIDevice object parameters:

ANARI scene objects:

Not supported

Detailed build info

Debug builds

If you have separate release and debug versions of USD, (or standalone OpenVDB, Blosc, Zlib), make sure the /lib and /include directories of the respective installations exist within /release and /debug directories, ie. for USD: <USD_ROOT_DIR>/release and <USD_ROOT_DIR>/debug.

Downloading the Omniverse libraries

Building USD Manually