NCP-OUSD study materials
NCP-OUSD study resources

NCP-OUSD: Hydra Rendering and Scene Index

NCP-OUSD · Work through your exam, one topic at a time.

All guide sections

Hydra Rendering and Scene Index

Hydra is USD's render-agnostic layer: it takes scene data and hands it to a delegate such as Storm, Arnold, or RenderMan. This domain tests how data reaches the renderer and how to debug what the renderer actually sees.

Core architecture

  • HdRenderIndex is the retained scene graph holding Rprims (geometry), Sprims (lights, cameras, materials), and Bprims (buffers, textures).
  • A render delegate (e.g. HdStorm) implements task execution and drawing for one renderer.
  • Legacy delegates pull data through HdSceneDelegate (Get, GetTransform, dirty bits). The modern path is HdSceneIndex: a pull-based tree queried with GetPrim, GetChildNames, and GetData, updated by invalidation messages rather than broad dirty lists.
  • UsdImagingStageSceneIndex converts a USD stage into a scene index; HdSceneIndexAdapterSceneDelegate bridges a scene index to delegate-based consumers.
  • Scene index filters chain between source and render index: merging, dependency-forwarding, and pruning filters.

What the renderer actually receives

Only prims surviving purpose and render-tag filtering matter. proxy and guide purpose geometry is skipped by default, and bounding boxes may substitute for it. Instanced geometry arrives as shared prototypes, so one prototype edit costs one update, not N.

Worked example

A cube looks stale after a script edits its Xform. In usdview, the Composition tab shows the opinion is authored in a sublayer that was never reloaded. Reload the layer. In a scene-index pipeline, also confirm the xform data source invalidation was emitted - otherwise the renderer keeps its cached transform even when composition is correct.

Traps

Blaming Hydra for composition bugs; expecting purpose = proxy geometry to render as final; and assuming scene-index updates are pushed - they are pulled after invalidation.