USD (Universal Scene Description) ist Pixars offenes Szenen-Austauschformat, das Houdini über den Solaris/LOPs-Kontext nativ integriert und als Basis für moderne Produktions-Pipelines mit non-destructivem, layer-basiertem Scene Assembly dient.
Rubrik: Animation & VFX · Unterrubrik: Houdini · Niveau: Profi
Synonyme / Auch bekannt als: Universal Scene Description, Solaris, USD Pipeline, OpenUSD
Was ist USD in Houdini?
USD (Universal Scene Description) wurde von Pixar Animation Studios entwickelt und 2016 als Open-Source-Projekt veröffentlicht. Es ist ein Dateiformat und gleichzeitig ein API-Framework zur Beschreibung komplexer 3D-Szenen in großen Produktions-Pipelines.
SideFX hat USD ab Houdini 18 (2019) mit dem Solaris-Kontext und dem LOPs-Netzwerk tief in Houdini integriert. USD ist seither die Grundlage für alle modernen Render- und Scene-Assembly-Workflows in Houdini, einschließlich des Karma-Renderers (siehe Karma Renderer in Houdini (USD/Hydra)).
Erklärung
USD-Grundkonzepte
Stage: Der gesamte Szenen-Graph, der alle Objekte, Kameras, Lichter und Materialien enthält.
Layer: USD-Dateien (.usd, .usda, .usdc, .usdz) sind Layers. Multiple Layers können zu einer Stage zusammengeführt werden. Spätere Layers können frühere überschreiben (Override).
Prim (Primitive): Ein einzelnes Objekt im USD-Stage (Mesh, Kamera, Licht, Material etc.).
Attribute: Daten auf einem Prim (Position, Farbe, etc.). Können über Zeit animiert sein.
Variants: Alternative Versionen eines Prims (z.B. verschiedene Materialfarben oder LODs).
Payloads: Lazy-Loading – große Geometrien werden nur geladen, wenn sie benötigt werden.
Instancing: USD hat ein effizientes Instancing-System für Millionen von Kopien identischer Objekte (z.B. Bäume in einer Waldszene).
USD in Houdinis Solaris-Kontext
Houdini bietet mit Solaris (LOPs, Lighting Operators) eine vollständige visuelle Umgebung für USD-Scene-Assembly. Im LOPs-Kontext werden USD-Stages durch Node-Verbindungen aufgebaut:
`` [Reference (Asset importieren)] ↓ [Edit (Override Properties)] ↓ [Assign Material] ↓ [Light (Area/Sky/Point)] ↓ [Camera] ↓ [Karma Render ROP] ``
USD-Datei-Formate
| Format | Typ | Beschreibung |
|---|---|---|
.usda | ASCII | Lesbar, groß, für Debugging |
.usdc | Binär (Crate) | Kompakt, schnell, für Produktion |
.usd | Entweder | Autodetect |
.usdz | ZIP-Archiv | Alle Assets in einer Datei |
Composition Arcs
USD hat ein mächtiges Kompositionssystem (Composition Arcs), das definiert, wie Layers miteinander interagieren:
| Arc | Bedeutung |
|---|---|
| sublayer | Layers werden übereinander geschichtet (wie Photoshop-Layer) |
| reference | Asset wird von externer Datei referenziert |
| inherit | Klassen-basierte Vererbung für Assets |
| over | Override-Anweisungen auf bestehende Prims |
| payload | Lazy-Load einer externen Datei |
Dieses System ermöglicht es, dass Art Director, Animator, Lighter und FX-Artist alle an derselben Szene arbeiten, ohne sich gegenseitig zu überschreiben – jeder arbeitet auf seinem eigenen Layer.
USD für Asset-Pipelines
In modernen Produktions-Pipelines werden Assets als USD-Dateien ausgeliefert:
- Modeling: Geometrie als
.usdcexportiert - Rigging/Animation: Animation-Data als separater Layer
- Surfacing: Materialien als separater Layer
- FX: Simulationsergebnisse als USD-Sequence
- Lighting/Rendering: Scene Assembly kombiniert alle Layers in Karma
Beispiele
Asset-Referenzierung: ``python Reference Path: /path/to/asset.usd Primitive Path: /World/Asset ``
Override ohne Original zu ändern: `` [Reference: original_asset.usd] ↓ [Edit Prim: Override material color → rot] ↓ [Render: Asset erscheint rot, Original bleibt unverändert] ``
In der Praxis
USD in der Industrie:
USD ist seit 2019 der de-facto-Standard für Produktions-Pipelines bei großen VFX-Studios. Alle Major Studios (Pixar, ILM, DreamWorks, Weta FX, Animal Logic) haben auf USD-Pipelines umgestellt.
Unreal Engine und USD: Unreal Engine 5 unterstützt USD nativ. Houdini-Assets können als USD nach Unreal Engine exportiert werden, was eine nahtlose Kombination aus prozeduraler Houdini-Kraft und Echtzeit-Rendering ermöglicht.
Houdini als USD-Bridge: Viele Studios nutzen Houdini als zentrales Pipeline-Werkzeug für USD-Assembly, selbst wenn das finale Rendering in einem anderen Renderer (Arnold, RenderMan) stattfindet.
Vergleich & Abgrenzung
| Format | Einsatz | Stärke |
|---|---|---|
| USD | Produktion, Pipeline | Non-destructiv, skalierbar |
| Alembic (.abc) | Animation, FX-Cache | Bewährt, breite Unterstützung |
| FBX | Game Engines, DCC | Breite Unterstützung |
| glTF | Web, Echtzeit | Leichtgewichtig |
| OBJ | Simple Mesh | Universell, veraltet |
Häufige Fragen (FAQ)
Was ist der Unterschied zwischen USD und Alembic? Alembic ist primär ein Geometrie-Cache-Format. USD ist ein vollständiges Szenen-Beschreibungssystem mit Materialien, Instancing, Varianten und einem Kompositions-Modell. USD kann Alembic-Daten einbetten.
Brauche ich USD-Kenntnisse für normale Houdini-Arbeit? Für klassische SOP/DOP-Workflows nicht zwingend. Für Rendering mit Karma und moderne Pipeline-Arbeit sind USD-Grundkenntnisse jedoch zunehmend notwendig.
Was ist der Unterschied zwischen .usda und .usdc? .usda ist ASCII (menschenlesbar, gut für Debugging), .usdc ist ein binäres Crate-Format (kompakt, schnell lesbar). Für Produktion wird .usdc bevorzugt.
Verwandte Einträge
- Houdini: Übersicht, Einsatz und Geschichte
- LOPs in Houdini: Lighting Operators und Scene Assembly
- Karma Renderer in Houdini (USD/Hydra)
- Mantra Renderer in Houdini
- HDAs (Houdini Digital Assets) erstellen und nutzen
Weiterführend
- Elkoura, G. et al. (2019). USD: A Scenegraph Format Designed for Production. SIGGRAPH 2019 Course.
- Pixar Animation Studios (2024). OpenUSD Documentation.
- SideFX (2024). Solaris & USD – Houdini Documentation.
- Academy Software Foundation (2024). ASWF OpenUSD Working Group.
- Lait, N. (2020). USD: From Pixar's Pipeline to Open Standard. DigiPro 2020 Talk.
