Volumes und OpenVDB in Houdini bezeichnen das Framework für dreidimensionale, sparse Datengitter, die volumetrische Phänomene wie Rauch, Feuer, Wolken, Nebel sowie implizite Oberflächen repräsentieren und verarbeiten.
Rubrik: Software & Tools · Unterrubrik: SideFX Houdini · Niveau: Fortgeschritten
Was sind Volumes und VDB?
Ein Volume in der 3D-Computergrafik ist ein dreidimensionales Skalar- oder Vektorgitter, das physikalische Felder im Raum beschreibt: Dichte (für Rauch), Temperatur (für Feuer), Geschwindigkeit (für Flüsse). Klassische Dense-Grids speichern jeden Voxel, was bei hohen Auflösungen enorm speicherintensiv ist.
OpenVDB (Open Volumetric Database) ist ein 2012 von Museth et al. bei DreamWorks Animation entwickeltes Datenformat und eine Bibliothek für sparse Volumengitter – nur Voxel, die von leeren Bereichen abweichen, werden gespeichert. Dies reduziert Speicherbedarf und Rechenzeit dramatisch. OpenVDB wurde 2013 mit dem Academy Award (Technical Achievement) ausgezeichnet und ist heute der Industriestandard.
Erklärung
OpenVDB-Architektur
OpenVDB nutzt eine hierarchische B-Baum-Struktur:
`` Root Node → Internal Nodes → Leaf Nodes → Voxels ``
Nur Äste mit aktiven Voxeln werden alloziert. Ein typisches Film-Rauch-Volume, das einen Würfel von 10 m³ mit 1-cm-Voxeln abdeckt, würde als Dense Grid 1 Billion Voxeln benötigen; OpenVDB speichert nur die aktivierten Bereiche – oft 99% weniger Speicher.
Volume-Typen in Houdini
| Typ | Beschreibung |
|---|---|
| Scalar Field (Float) | Dichte, Temperatur, Fuel, Distance |
| Vector Field (v) | Geschwindigkeitsfelder, Gradients |
| Integer Field | Klassifikationsdaten |
| Level Set (SDF) | Signed Distance Field – implizite Oberfläche |
Wichtige Volume-SOPs
- VDB from Polygons: Konvertiert Meshes in SDFs oder Dichte-Fields
- Convert VDB: VDB → Polygon-Mesh (Iso-Surface)
- VDB Combine: Boolesche Operationen auf VDB (Union, Intersect, Subtract)
- VDB Smooth / Reshape / Morph: Filtert und verändert VDB-Felder
- Volume Wrangle: VEX-Code auf Voxel-Ebene ausführen
- Volume Merge / Split: Mehrere Fields kombinieren oder trennen
- Scatter on VDB: Punkte im aktiven Bereich verteilen
Volumes als Simulation-Output
Nahezu alle Houdini-Simulationen nutzen VDB als primäres Speicherformat:
- Pyro-Simulationen geben
density,temperature,velals VDB-Felder aus - FLIP Fluids können als SDF-VDB gespeichert werden (Oberfläche als Level Set)
- Dichte-Clouds und Atmosphären werden manuell als VDB erzeugt
SDF – Signed Distance Fields
Ein SDF (Signed Distance Field) ist ein spezieller Volume-Typ, bei dem jeder Voxelwert den vorzeichenbehafteten Abstand zur nächsten Oberfläche speichert. Negative Werte liegen innerhalb, positive außerhalb des Objekts. SDFs ermöglichen:
- Exakte, glatte Iso-Surface-Extraktion via Marching Cubes
- Boolean-Operationen ohne Mesh-Probleme
- Effiziente Kollisions-Queries in Simulationen
Beispiele
Wolken erzeugen: Noisy-Box-SOP → VDB from Polygons (Dichte) → VDB Smooth → Volume Ramp (Dichte-Falloff) → Karma Volume-Shader.
Mesh → VDB → Mesh (Boolean): Mesh A + Mesh B → VDB from Polygons (SDF) → VDB Combine (Subtract) → Convert VDB → Sauberes Boolean-Ergebnis.
Custom Smoke-Advection: Bestehendes Density-Field → Volume Wrangle: f@density += vex_turbulence() → Temporales Warping für interessantere Dynamik.
In der Praxis
OpenVDB wird produktionsübergreifend eingesetzt:
- Film-VFX: Pyro und FLIP geben VDB-Sequenzen aus, die auf Render-Farmen mit Arnold, RenderMan oder Karma gerendert werden
- Game-Entwicklung: VDB-Volumes können in Unreal Engine 5 als Volumetric Clouds oder Nebel verwendet werden
- Wissenschaftliche Visualisierung: Medizinische und physikalische Daten (CT-Scans, CFD-Simulationen) als VDB
Datei-Workflow: VDB-Dateien (.vdb) sind das bevorzugte Austauschformat für volumetrische Daten zwischen Houdini, Katana, Nuke und anderen Pipeline-Elementen.
Vergleich & Abgrenzung
Blenders Volume-System nutzt ebenfalls OpenVDB und ermöglicht ähnliche Workflows, ist aber weniger tief in Simulationen integriert. Cinema 4D Volumes nutzen seit R21 ebenfalls OpenVDB. Das gemeinsame Dateiformat ermöglicht problemlosen Austausch zwischen Applikationen.
Häufige Fragen (FAQ)
Welche Voxelgröße ist üblich? Für Film-Nahaufnahmen: 0,5–2 cm; Hintergrundeffekte: 5–10 cm. Kleinere Voxel = mehr Detail, exponentiell mehr Speicher.
Kann ich VDB-Dateien in anderen 3D-Programmen öffnen? Ja, OpenVDB ist ein offener Standard. Maya (mit Bifrost), Cinema 4D, Blender, Katana und die meisten professionellen Renderer unterstützen VDB nativ.
Wie rendere ich Volumes realistisch? Über volumetrische Shader, die Lichtstreuung (Single Scattering) und -absorption simulieren. Karma, Arnold und RenderMan bieten umfangreiche Volume-Shader.
Verwandte Einträge
- Pyro Simulation (Feuer & Rauch)
- FLIP Fluids – Flüssigkeitssimulation
- SOP-Netzwerk (Surface Operators)
- Karma Renderer in Houdini
- Prozedurales Modeling in Houdini
Weiterführend
- Museth, K. (2013): VDB: High-Resolution Sparse Volumes with Dynamic Topology. In: ACM Transactions on Graphics, 32(3), Art. 27.
- SideFX (2024): Working with Volumes (VDB). URL:
- Pharr, M. et al. (2023): Physically Based Rendering: From Theory to Implementation. 4. Aufl. MIT Press.
- OpenVDB Alliance (2024): OpenVDB Developer Guide. URL:
