USD Supported Features and Known Limitations - Arnold User Guide
The render delegate currently supports the following features:
- RPrim Support
- Mesh
- All primvars are supported, st/uv is accessible through the built-in uv attribute on the mesh
- Normal primvars are translated to Arnold built-in attributes
- Support for the displayColor primvar
- Subdivision settings
- Volume
- Points
- Mesh
- SPrim Support
- Materials
- Arnold shaders are supported, the
info:id
attribute is used to determine the shader type - UsdPreviewSurface is translated to Arnold shaders
- UsdTransform nodes
- Per-face material assignments
- Arnold shaders are supported, the
- Lights
- Distant Light
- Sphere Light
- Disk Light
- Rect Light
- Cylinder Light
- Dome Light
- Shaping Parameters
- Light and Shading Linking
- ExtComputation
- HdCamera
- Perspective projection
- Materials
- BPrim Support
- Render Buffer
- OpenVDB Asset
- Point Instancer, including nesting of Point Instancers and instancing Volumes
- Selection in USD View and other applications using the
primId
AOV - Displaying the Color, Depth, and PrimID AOVs
- Motion Blur
- Deformation
- Transformation
- Rendervar support
- Raw Rendervars
- Primvar Rendervars
- LPE Rendervars
- SourceName parameter
- DataType parameter
- Setting up Arnold filters via "arnold:filter_type"
- Filtering parameters via "arnold:param_name"
- Filtering parameters via "arnold:filter_node_entry:param_name"
- USD Skel support
- HdExtComputation support for poly meshes
- Render Settings via the Render Delegate
- Sampling parameters
- Threading parameters
- Ignore parameters
- Profiling and logging parameters
- Switching between CPU and GPU mode seamlessly
- Default values are configurable through environment variables for most of these parameters
- Basis Curves support
- Remapping uv/st to uvs
- Remapping normals to orientations
- Pause and Resume API
- Half and Double types
- USDZ texture support. For usdz files, tx files are saved in a folder named
.usdz_tx.
Limitations
- Crash on Linux at startup with usdview : Currently, the Arnold library needs to be ld-preloaded to avoid the crash, e.g.
LD_PRELOAD=/path_to_arnold/bin/ [libai.so](http://libai.so) usdview scene.usda
- Ignoring primvars:arnold:basis on curves
- No support for periodic or pinned curves
- No field3d volume grids
- Not all the parameters are accessible through the render settings
- Texture Cache size
- Texture generation parameters (automip, autotile)
- No normal maps on the UsdPreviewSurface
- Only converging renders are supported (ie. it's not possible to block the viewport until the render finishes)
- No coordsys support
- No support for orthographic cameras
Node Registry Plugin
The Node Registry plugin supports the current features:
- Registering Sdr nodes for every built-in shader and custom shader
- Setting up the asset URI either to
<built-in>
or to the path of the shader library providing the shader. - Creating all parameters.
- Setting up the asset URI either to
Limitations
- No nodes registered for
- Shapes
- Lights
- Filters
- Drivers
- No node is registered for the options node
- Metadata is not converted for any node
Arnold USD Procedural
The Arnold procedural supports the vast majority of USD shapes:
- USD Geom primitives
- UsdGeomMesh
- UsdGeomCurves
- UsdGeomBasisCurves
- UsdGeomPoints
- UsdGeomCube
- UsdGeomSphere
- UsdGeomCone
- UsdGeomCylinder
- UsdPointInstancer
- UsdVolume
- UsdGeomCamera
- primvars are translated as user data
- USD Lux primitives
- UsdLuxDistantLight
- UsdLuxDomeLight
- UsdLuxDiskLight
- UsdLuxSphereLight
- UsdLuxRectLight
- UsdLuxGeometryLight
- Support for textured lights (dome, rectangle, and geometry)
- USD native shaders
- UsdPreviewSurface
- UsdPrimVar
- UsdUVTexture
- Per-channel connections via adapter nodes
- UsdTransform nodes
- UsdSkel support
- Arnold shaders supported as UsdShade nodes (where info:id gives the shader type)
- Support for any additional Arnold parameter in USD nodes (e.g. attribute
primvars:arnold:subdiv_iterations
in a UsdGeomMesh) - Support for any Arnold node type (e.g. USD type ArnoldSetParameter gets rendered as Arnold
set_parameter
node) - Support for multi-threaded parsing of a USD file
- UsdRender schema support
- Half and Double types
- Usd Purpose
Limitations
Currently unsupported:
- Nurbs