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 region of 3D density filling a box in the scene. Light travels through it, scatters inside it, and casts soft shadows on itself. Put one in a render for smoke, mist and nebulae, or for 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. What the source is decides how it is turned into voxels; display_mode decides how those voxels are drawn.
Accepted inputs:
A Volume of any kind, whether smoke from a Smoke Sim sim or a baked field.
A Distance Field or geometry, including Analytic shapes. A mesh voxelises, either to a signed distance field or to a 0..1 occupancy grid depending on
mesh_mode; points splat with a Gaussian, linear or constant falloff set bykernel_type.An image, image sequence, or live video, stacked into a 3D box for a volumetric slab look.
All of them render through the same engine, so a source can be swapped without rebuilding the shading.
A Distance Field gives two looks from the same input, and display_mode picks between them. Volumetric, the default, ray-marches it as fog filling the shape. Surface sphere-traces the isosurface and shades it as a lit solid alongside the meshes, with shade_smooth on to hide the voxel facets. See Distance fields & volumes for what the two kinds of data are.
Shaping the look
A volume's appearance is controlled by a single material with a handful of channels.
fillis the colour: a flat colour, a Field, an Expression, or a texture. Where that field carries several named channels, such as a captured record,fill_channelpicks which one shades the volume.scatteringandabsorption. How much light bounces around inside against how much is swallowed. High scattering reads as bright, milky cloud; high absorption reads as dark, heavy smoke.phaseruns from -1 to 1. Positive keeps light going forward, giving that bright silver-lining rim; 0 spreads it evenly; negative scatters it back.ambientis the floor brightness in shadowed parts, so the dark side does not go black.emission_intensitymakes dense regions glow on their own. It is 0 by default, and it is what a fire or energy look is built on.detail_strengthadds wispy high-frequency erosion at the edges so clouds do not read as a solid blob. It is ignored for image and video volumes.
Those channels belong to the Volume Render node itself. To author the look somewhere else instead, set a Material node to Volume and wire it into material_in: the wired material then supplies the whole appearance and the node's own fill, scattering, absorption, phase, ambient and alpha are ignored, so the look lives in one place rather than half here and half upstream.
Self-shadowing, multiple-scattering octaves, a blended forward and back lobe, and the Beer-powder edge darkening are all part of the shading model and are all fixed. There is no dial for them.
| Parameter | Type | Default | What it does |
|---|---|---|---|
sources | Any | List | Geometry, SDF, Image, frame-stack (Capture), or Volume sources to render as volumetric fog/clouds |
fill | Color or Color Field or Scalar Field or Vector Field | — | — |
fill_channel | String | "" | For a multi-channel field fill (a captured record): which named Color channel to use. |
material_in | Implicit Render Settings | — | — |
display_mode | String | "Volumetric" | Volumetric: fog / cloud / smoke (default). Surface: lit solid — sphere-traces the SDF isosurface into the deferred renderer. One of: Volumetric, Surface. |
shade_smooth | Boolean | true | Smooth the sphere-traced surface normals (hides SDF voxel facets). Surface mode only. |
edge_falloff | Number | 0.500 | Edge falloff when extruding (0 = sharp, 1 = soft) |
volume_depth | Number | 0 | World-space depth of the volume (0 = auto). Sets how deep a raster or frame-stack source is extruded along Z. |
frame_channel_mode | String | "Color" | Frame stack → Volume: Color (keep RGB) or Luminance (grayscale density). Frame index becomes Z depth. One of: Color, Luminance. |
mesh_mode | String | "SDF" | SDF: smooth signed-distance field (surface render, collisions). Density: 0..1 occupancy grid you can blur (fog, reaction-diffusion). Mechanism is picked by the source — mesh voxelizes, points splat. One of: SDF, Density. |
point_radius | Number | 1 | Default radius for point splatting (overridden by per-point pscale attribute) |
kernel_type | String | "Gaussian" | Density falloff shape: Gaussian (smooth), Linear (cone), Constant (hard sphere). One of: Gaussian, Linear, Constant. |
smoothness | Number | 0 | Smooth blending radius when combining multiple geometry sources |
fog_distance | Number | 50 | Distance beyond surface where fog is visible (affects density falloff) |
detail_strength | Number | 0.350 | Wispy edge detail (smoke/cloud turbulence). 0 = off. Ignored for image/video volumes. |
emission_intensity | Number | 0 | Self-emission strength — hot regions glow. Pair with a density→blackbody gradient for fire. 0 = off. |
voxel_resolution | Number | 64 | Voxel grid resolution (higher = more detail, slower) |
voxel_padding | Number | 0.100 | Padding around mesh bounds as fraction of size |
voxel_fill_interior | Boolean | true | Fill interior of mesh (requires watertight mesh for correct results) |
voxel_tessellation | String | "Medium" | Tessellation detail for primitives: Low (8 segments), Medium (16), High (32), Ultra (64). One of: Low, Medium, High, Ultra. |
sdf_resolution | Number | 128 | SDF grid resolution (higher = more accurate distance field, less voxel cell aliasing) |
sdf_max_distance | Number | 10 | Maximum distance from surface to compute (affects fog extent) |
resolution | Number | 128 | Volume resolution (XY detail). Higher = sharper image/camera volumes; the bake auto-caps total voxels to stay within the GPU memory budget. |
bounds_size | Number | 100 | World-space size of the volume bounds (used for non-mesh sources; mesh sources derive bounds from the mesh AABB) |
scattering | Number | 0.500 | Scattering: 0 = no scattering, 1 = dense fog |
absorption | Number | 0.100 | Absorption: 0 = transparent, 1 = opaque smoke |
phase | Number | 0.300 | Phase: -1 = back scatter, 0 = isotropic, 1 = forward scatter |
ambient | Number | 0.200 | Ambient: minimum brightness in shadowed areas |
alpha | Number | 0.500 | Volume opacity in viewport |
strength | Number | 1 | Effect strength / wet-dry (0 = no effect, 1 = full). Editable, wirable, keyframable. |
Live video into a volume
A live camera or video stream routes straight into the Volume Render node. Frames stack into the 3D box along Z and update every frame, giving a moving volumetric slab that lights and shades like any other volume. frame_channel_mode decides whether the stack keeps its RGB or collapses to luminance as density. This is the route for live 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, with no offline bake step and no separate cache to manage. External or third-party renderers are a future extension point.
Performance
Volumes are among the heaviest things you can render, because a ray is marched through space for every pixel. Screen tiles the volume does not cover are never dispatched, and a ray stops as soon as the volume in front of it has gone opaque.
The step count is not yours to set. Volumetric mode marches up to 768 steps and Surface mode up to 256, fixed, and the self-shadow march is 6 samples. What you control is resolution, and which resolution depends on the source.
resolution(128) is the grid for image, video and camera volumes. The bake caps total voxels to stay inside the GPU memory budget, so pushing it past that point buys nothing.voxel_resolution(64) is the grid a mesh voxelises into, andsdf_resolution(128) the grid a distance field is sampled onto.bounds_size(100) is the world-space size of the box, not its detail. A mesh source derives its bounds from the mesh instead.
When a volume render is dragging the frame rate, drop the resolution that matches your source first. It buys back the most speed for the least visible loss. Watch the Performance panel while you tune, and see Making it faster for keeping heavy renders real-time.
See also
Distance fields & volumes for what volumes and distance fields are
Fluid & smoke for generating smoke and fire to render