Universal Scene Description (USD)

repository·dev·Indexed 27 days ago

https://github.com/pixaranimationstudios/openusd

A high-performance, scalable system for authoring, reading, and streaming time-sampled scene descriptions for interchange between graphics applications. This repository provides the core USD libraries, a domain-agnostic low-level data model featuring a multi-threaded composition engine and a scenegraph.

Tokens
205.8K
Snippets
362
Records
1K
Agent score
91%

What's inside OpenUSD

  1. Overview of OpenExec computational evaluation

    dev

    OpenExec enables efficient evaluation of computational behaviors within USD scenes. It works by ingesting a UsdStage and a set of registered computations to create an internal representation of the scene's computational graph.

    Key workflow components:

    • Schemas publish computations (atoms of computational behavior).
    • Computations take inputs from other computations or authored scene values to produce outputs.
    • Clients request specific sets of computation outputs.
    • Caching and invalidation mechanisms are supported to optimize performance in response to scene changes.
  2. Overview of UsdPreviewSurface Specification

    dev

    The UsdPreviewSurface is a specification for a preview material designed to facilitate asset interchange across different film and game pipelines. It provides a set of basic nodes supported natively by production renderers shipping with USD/Hydra.

    Key characteristics include:

    • Interchangeability: Designed to move assets across multiple environments, including offline and real-time renderers.
    • Workflow Support: Supports both metallic and specular workflows to ensure compatibility with various content creation tools and engines.
    • Network-Friendly: Unlike single-node solutions, it is designed to be compatible with UsdShade network shading, allowing signal inputs to be driven by pattern networks (such as primvars or textures).
    • Scope: It acts as a constrained 'ubersurface' for common scenarios. For specialized effects like subsurface scattering, anisotropic specular highlights, or cloth shaders, users are encouraged to create more specific surfaces.
  3. Overview of UsdUI Hints

    dev

    UsdUI provides schema-like APIs to author UI hints on prims and properties. These hints describe how a prim or property should be presented in a DCC tool or application UI. UI hints are authored as metadata in a uiHints dictionary.

    Note: While you can access uiHints directly via metadata, it is recommended to use the UsdUI APIs (e.g., ObjectHints, PropertyHints) because they provide reasonable fallback values (e.g., returning an empty string instead of None).

    Hint Groupings:

    • ObjectHints: General hints (like displayName) applicable to any prim or property.
    • PrimHints: Prim-level hints, such as controlling how and when display groups are shown.
    • PropertyHints: Property-level hints, such as assigning a property to a displayGroup or using shownIf logic.
    • AttributeHints: Attribute-level hints, such as valueLabels for discrete values and their display order.
  4. Overview of UsdProfiles

    dev

    UsdProfiles provides infrastructure for capability-based profile compatibility queries in USD scenes. It allows developers to answer questions such as whether a prim satisfies a specific profile's requirements or which USD capabilities a prim utilizes.

    It consists of two primary components:

    • UsdProfileRegistry: A singleton that loads capability metadata from plugins and exposes the capability Directed Acyclic Graph (DAG) for querying.
    • UsdProfilesClaimsAPI: A prim-level applied schema used to record which capabilities a prim uses and which profiles it is compatible with.
  5. Overview of Universal Scene Description (USD) Core Libraries

    dev

    Universal Scene Description (USD) is a system designed for the scalable encoding and interchange of static and time-sampled 3D geometry, shading, and lighting data between Digital Content Creation (DCC) applications.

    This specific package provides the core USD libraries. It is a domain-agnostic low-level data model that supports plugin implementations and a scenegraph powered by a multi-threaded composition engine.

    Note: This package does not include optional plugins or imaging features found in the full USD distribution.

  6. Overview of OpenExec framework

    dev

    OpenExec is a general-purpose framework for expressing and evaluating computational behaviors within an OpenUSD scene. It is designed to handle complex computations (such as character rigging, posing, and constraint targets) that require caching and dependency tracking.

    Key features include:

    • Execution Network: A directed acyclic graph (DAG) where computational tasks are nodes and data flows are edges. This network implicitly encodes data dependencies.
    • Automatic Caching and Invalidation: The framework automatically manages the caching of computed values and invalidates them when input dependencies change.
    • Multi-threaded Evaluation Engine: A high-performance engine capable of executing large-scale networks (hundreds of thousands to millions of nodes) in parallel.
    • Value-driven Model: OpenExec is value-driven, not event-driven. Recomputation is triggered when a client requests a result after an input dependency has been updated in the UsdStage.
  7. Overview of the Exec execution system core

    dev

    The exec library is a core execution system designed to handle computations provided by objects within a scene. Its primary responsibilities include:

    • Defining computations provided by scene objects.
    • Ingesting scenes.
    • Compiling data flow networks.
    • Evaluating data flow networks.

    The library is built upon the following foundational libraries:

    • vdf
    • ef
    • esf
  8. Introduction to Universal Scene Description (USD)

    dev

    Universal Scene Description (USD) is an open-source software framework designed for the robust and scalable interchange and augmentation of 3D scenes. It allows for the composition of complex scenes from many elemental assets (such as models or animations) and enables non-destructive editing through a system of overrides.

    Key capabilities include:

    • Interchange & Assembly: Moving assets between different 3D applications and organizing them into virtual sets, scenes, shots, or worlds.
    • Non-destructive Editing: Using a single, consistent API and scenegraph to edit data without destroying the original source.
    • Extensibility: A domain-agnostic core scenegraph and composition engine that can be extended to support geometry, shading, lighting, physics, and other graphics domains.
    • High-Performance Runtime: A compact scenegraph known as a Stage that resolves composed scene descriptions efficiently.