Nodes · 3D
VDBRead
3Dv1app
Overview
Reads a .vdb volume cache (smoke, clouds, fire from FX or a bought pack) into the scene as a standard UsdVol prim. Loads off-thread — the box draws dim while streaming, bright when ready. Rendering the volume itself lands with the volume pass; today you get the placed, pickable bounding box.
How to
How-to
- Set
file(asmoke.####.vdbsequence resolves per frame) and thegrid. - Loads off-thread; the panel names the resolved frame and turns amber when it is missing.
- A VolumeShade sets the look.
Inputs
| Input | What it takes |
|---|---|
| in | the image this node works on |
Outputs
| Output | Type |
|---|---|
| out | Scene |
Parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
| tx | Float | 0.0 | Translate X — position along the world X axis, metres. |
| ty | Float | 0.0 | Translate Y — position along the world Y axis (up), metres. |
| tz | Float | 0.0 | Translate Z — position along the world Z axis, metres. The camera looks down −Z. |
| rx | Float | 0.0 | Rotate around X, degrees. |
| ry | Float | 0.0 | Rotate around Y (turntable), degrees. |
| rz | Float | 0.0 | Rotate around Z (roll), degrees. |
| sx | Float | 1.0 | Scale along X. 1 = unchanged. |
| sy | Float | 1.0 | Scale along Y. |
| sz | Float | 1.0 | Scale along Z. |
| file | Text | The .vdb on disk. Big caches stream in the background — the viewport never waits on this file. | |
| grid | Text | density | Which grid (field) to read — 'density' in most smoke/cloud caches, 'temperature' for fire. Empty = the first float grid in the file. |
| emission_grid | Text | A companion grid of the same file that scales the emission (Houdini's flame or heat), the way its Pyro shader splits fire. Empty = the density scales it. | |
| temperature_grid | Text | A companion grid a blackbody VolumeShade colours by (temperature). Empty = none. | |
| units | Choice | voxel | What one unit of density means. world integrates per metre along the ray, as Houdini's renderers do; voxel per index voxel, the look older comps were made with. New nodes are created in world. voxelworld |
| first | Int | 0 | The clip's frame range on disk. |
| last | Int | 0 | The clip's frame range on disk. |
| before | Choice | black | What plays outside the range: hold the end frame, loop, bounce, or black. holdloopbounceblack |
| after | Choice | black | What plays outside the range: hold the end frame, loop, bounce, or black. holdloopbounceblack |
| frame_mode | Choice | none | Where the cache sits in time, the Read node's meaning: none plays the file's own numbers; start_at slides the sequence so its first frame lands on start_at; offset adds frame_offset. nonestart_atoffset |
| start_at | Int | 1 | The shot frame the sequence's first frame lands on when frame_mode is start_at. |
| frame_offset | Int | 0 | Frames added to the shot frame to find the file when frame_mode is offset. |
| disabled | Bool | false | Bypass: the node passes its first input through untouched (D in the graph). The knobs keep their values for when it comes back. |
| label | Text | A note shown under the node in the graph — what this node is FOR. Never affects the render or the cache. | |
| hide_input | Bool | false | Draw the node without its input wire — a tidy graph for a node whose source is obvious (a Dot, a viewer tap). |
See also
- The 3D system — How to put geometry, cameras and volumes in the comp — without becoming a 3D application.