Authoring and designing with composition arcs: Worked Example — Composition (NVIDIA-Certified Professional: OpenUSD Development)
Authoring and Designing with Composition Arcs: Worked Example In the NVIDIA-Certified Professional: OpenUSD Development exam, composition is a...
Authoring and Designing with Composition Arcs: Worked Example
In the NVIDIA-Certified Professional: OpenUSD Development exam, composition is a critical topic, accounting for 23% of the assessment. This worked example focuses on authoring and designing with composition arcs, demonstrating how to apply composition arcs effectively in a realistic 3D content pipeline scenario.
Scenario Overview
Imagine you are building a 3D scene for a virtual production pipeline. The scene consists of multiple USD layers representing different assets: a base environment, character models, and lighting setups. Your goal is to author these layers so that they compose correctly, allowing flexible overrides and efficient collaboration.
Step 1: Identify Composition Arc Types Needed
OpenUSD supports several composition arcs, including references, payloads, overrides, and specializes. For this scenario:
- References will be used to include character models into the environment without duplicating data.
- Payloads will defer loading of heavy assets until needed, optimizing performance.
- Overrides will allow artists to modify specific properties like material parameters or transform values.
Step 2: Author the Base Environment Layer
Create a base USD layer environment.usd that defines the static environment geometry and default lighting. This layer will serve as the root of the composition.
Step 3: Reference Character Models
In the environment layer, add reference arcs to include character models:
def Xform "Character_01" { references = @characters/char01.usd@ }
This references the character USD file without loading its contents directly into the environment layer, enabling modular updates.
Step 4: Use Payloads for Heavy Assets
To optimize scene loading, convert the character references to payload arcs:
def Xform "Character_01" { payload = @characters/char01.usd@ }
This defers loading the character until explicitly requested, improving performance during scene assembly.
Step 5: Apply Overrides for Customization
To customize the character's material color without modifying the original asset, create an overrides layer that specializes the character prim and changes the material parameter:
over "Character_01" { def Material "Skin" { color = (1.0, 0.8, 0.6) } }This override arc allows artists to author non-destructive changes layered on top of the referenced asset.
Step 6: Debugging Composition with LIVERPS
After authoring, use the LIVERPS tool to debug composition arcs. LIVERPS helps visualize how arcs combine, showing which layers contribute to each prim and property. This is essential to verify that references, payloads, and overrides compose as intended.
Worked Example: Verifying Composition
Problem: You notice that the character's overridden skin color is not appearing in the final composed stage.
Solution:
- Run LIVERPS on the composed stage to inspect the Character_01 prim.
- Check the composition arcs to confirm the override layer is included.
- Verify that the override layer is loaded and correctly authored.
- Identify if any stronger arcs (e.g., specializes or references) are masking the override.
- Adjust the layer stack or arc types to ensure the override applies.
This step-by-step debugging ensures the composition arcs are functioning correctly in the pipeline.
Summary
Authoring and designing with composition arcs in OpenUSD requires careful selection of arc types—references for modular inclusion, payloads for deferred loading, and overrides for flexible customization. Using tools like LIVERPS to debug composition arcs is vital to ensure the final scene assembles as intended. Mastery of these concepts is essential for success in the NVIDIA-Certified Professional: OpenUSD Development certification.
More in this topic
Ready to test your knowledge?
Put what you've learned into practice with a quick quiz and track your progress.
Test your knowledge →