Share

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
  • 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
    • Lights
      • Distant Light
      • Sphere Light
      • Disk Light
      • Rect Light
      • Cylinder Light
      • Dome Light
      • Shaping Parameters
    • Light and Shading Linking
    • ExtComputation
    • HdCamera
      • Perspective projection
  • 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.

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

Was this information helpful?