Volumes
Render fog, clouds, smoke, and glowing isosurfaces — soft, lit, three-dimensional looks that fill space instead of sitting on a surface.
A Volume is a chunk of 3D density: think of it as a cloud of "stuff" filling a box in your scene. Light travels through it, scatters inside it, and casts soft shadows on itself. Drop a Volume into a render and you get smoke, mist, nebulae, or a clean shaded surface carved out of a Distance Field.
Rendering a volume
The volume.render node takes a volume-shaped input and renders it. There is no mode dropdown to fuss with — the node looks at what you feed it and does the right thing.
You can wire in:
A Volume of any kind (smoke from a simulation.smoke sim, a baked field).
A Distance Field or geometry — points become a density splat, a mesh becomes a smooth shaded surface, Analytic shapes become clean isosurfaces.
An image, image sequence, or live video — stacked into a 3D box for a volumetric slab look.
Whatever you give it renders through the same engine, so you can swap sources without rebuilding your shading.
Feeding a Distance Field gives you two looks for free: a crisp shaded surface (sphere-traced, with proper lighting and ambient occlusion) or soft fog filling the shape. The look follows from the data you build upstream — see Distance fields & volumes.
Shaping the look
A volume's appearance is controlled by a single material with a handful of channels:
Colour — a flat colour, a Field, an Expression, or a texture.
Scattering and absorption — how much light bounces around inside versus gets swallowed. High scattering reads as bright, milky cloud; high absorption reads as dark, heavy smoke.
Phase — whether light prefers to keep going forward (forward scatter) for that bright silver-lining rim, or spread evenly.
Transfer function — a Gradient that maps density to colour, so thin wisps and dense cores read differently. Great for fire and energy looks.
Detail — adds wispy high-frequency erosion at the edges so clouds don't look like a solid blob.
The renderer ships with a rich shading model out of the box — self-shadowing, multi-bounce glow, a forward/back light response, and edge darkening — so volumes look good before you touch a slider. The Detail strength is the one look knob exposed directly; the rest are tuned to look right automatically.
| Parameter | Type | Default |
|---|---|---|
sources | Any | Collection(AttributedCollection { col... |
fill | OneOf([Color, FieldOf(Color), Field]) | — |
material_in | OneOf([ImplicitRenderSettings]) | — |
edge_falloff | Number | 0.500 |
volume_depth | Number | 0 |
frame_channel_mode | String | "Color" |
mesh_mode | String | "SDF" |
point_radius | Number | 1 |
kernel_type | String | "Gaussian" |
smoothness | Number | 0 |
fog_distance | Number | 50 |
detail_strength | Number | 0.350 |
emission_intensity | Number | 0 |
voxel_resolution | Number | 64 |
voxel_padding | Number | 0.100 |
voxel_fill_interior | Boolean | true |
voxel_tessellation | String | "Medium" |
sdf_resolution | Number | 128 |
sdf_max_distance | Number | 10 |
resolution | Number | 128 |
bounds_size | Number | 100 |
scattering | Number | 0.500 |
absorption | Number | 0.100 |
phase | Number | 0.300 |
ambient | Number | 0.200 |
alpha | Number | 0.500 |
strength | Number | 1 |
Live video into a volume
You can route a live camera or video stream straight into the Volume node. Frames stack into the 3D box and update every frame, giving you a moving volumetric slab you can light and shade like any other volume — handy for performance visuals.
The volume renderer runs on the built-in GPU renderer. Like the rest of rendering, it is real-time and lives entirely on the GPU — no offline bake step, no separate cache to manage. External or third-party renderers (path tracers and the like) are a future extension point and do not render volumes today.
Performance
Volumes are some of the heaviest things you can render, because the engine has to march a ray through space for every pixel. It works hard to stay fast — skipping empty space, stopping early once a pixel is solid, and reusing work between frames — but a few settings move the dial most:
Resolution — the size of the voxel box. Higher means crisper detail and more memory. Start modest (128³) and only push higher when you can see the difference.
Step size / max steps — smaller steps and more of them mean smoother results but slower renders.
Shadow steps — how carefully the volume shadows itself. Lower for speed, higher for soft, believable depth.
If a volume render is dragging your frame rate, drop the resolution first — it usually buys back the most speed for the least visible loss. Watch the Performance panel while you tune.
See also
Distance fields & volumes — what volumes and distance fields actually are
Fluid & smoke — generating smoke and fire to render
The render node — putting volumes into a final render
Lights — lighting that shapes a volume
Making it faster — keeping heavy renders real-time