Intro to USD
A compilation of my notes from studying USD.
Intro
USD (Universal Scene Description) is a framework that was developed by Pixar to improve the collaboration between technical and creative by moving from a sequential workflow to a collaborative workflow. The (.USDA) file type is used in a variety of programs like Maya, Omniverse, Unity, and Unreal Engine.
Notes
- The USD file type has access to the sublayers, references and variants of a project.
- Each department with pixar used to have different apis to do the things they do.
- Project became open source in 2016.
- A single USD file can contain meshes, lights, shaders, camera information, etc.
- The USD file type can have multiple representations like .USD, .USDC , .USDA , and .USDZ
- The 6 kinds of composition arcs in USD files are sublayers, reference, payloads, variants, inherits, and specializes.
Hydra: rendering architecture
- Rendering architecture for images from USD
- Supports rendering backends like OpenGL and RTX ray tracing.
Terms
Prims: The primary container object in USD. Prims can contain other prims, creating a namespace hierarchy.
Layer Composition: The ways in which USD files can be combined together.
Stage: The outermost container for scene description.
Properties: The other kind of namespace object in USD. There are two types of properties (attributes and relationships).
Relationship: A namespace pointer. Relationships can have multiples targets.
Schema: An object that authors and retrieves structured data from some UsdObject.
Layer: The atomic persistent container of scene description for USD.
LayerStacks: The keystone to understanding composition in USD. It is the ordered set of layers resulting from the recursive gathering of all SubLayers of a Layer, plus the layer itself as first and strongest.
Sublayers: The composition arc used to construct LayerStacks.
References: The composition arc that can be used to achieve a similar kind of layering data, when one knows exactly which prims need to be layered.
Payloads: The composition arc that is a kind of reference. Payloads are weaker than references and given a LayerStack, all direct references will be stronger than all direct payloads.
VariantSet: The composition arc that allows a content creator to package a discrete set of alternatives, between which a downstream consumer is able to non-destructively switch, or augment.
Inherits: The composition arc that addresses the problem of adding a single, non-destructive edit that can affect a while class of distinct objects on a stage.
Specializes: The composition arc that allows a specialized prim to be continuously refined from a base prim, through unlimited levels of referencing.