Houdini 20.0 Nodes Geometry nodes

Volume geometry node

Creates a volume primitive.

On this page

The Volume SOP creates a volume primitive. A volume is a box divided up grid of smaller boxes, called voxels, each of which can store a number. The resulting primitive can be used to define a scalar field over a volume sampled at the grid centers.

The grid generated by the Volume SOP has constant value everywhere. It can be further manipulated on a voxel-by-voxel basis using the Volume VOP SOP or the Volume Mix SOP.

When mantra renders volumes it overrides rendering parameters according to the name of the volume. This name can be set in the Volume SOP (or later using the Name SOP). The name is also used for the default bindings to the Volume VOP SOP.

The Volume SOP can also generate sets of volumes. Selecting a rank of Vector will create three volumes suitable for a velocity field, a rank of Matrix will create nine volumes suitable for a strain tensor field.


If you connect geometry to the Volume SOP’s input, it will create a bounding box around the input geometry



Each volume primitive only holds a single number per voxel cell. If you want to use higher order volumes, such as vector fields or matrix fields, you can use multiple volume primitives. The Rank option lets you create multiple named volumes to match vector or matrix fields.


If not blank, the created volume primitive will have the name primitive attribute set to this value. Naming volumes allows mantra and the Volume VOP to override the correct parameters with the values of the volume. If the created volume is Vector or Matrix, .x or .xx will be appended to identify the subcomponents.

Initial Value

The created volume primitive will have the same value throughout the volume.




The size of the volume box. This will be adjusted slightly to ensure voxels are all equal size if uniform sampling is turned on.


The center of the volume box.


Allows you to override the tapering of the volume along the Z direction. This allows a volume that better fits a camera’s viewing area, so you can have a greater density of volumes closer to the camera.

Two Dimensional

One of the divisions of the voxel grid will be forced to one to create a two dimensional field.


If set to two dimensional, this plane determines which axes remain unaffected.

From Camera


The camera whose frustum we will fit the volume to.

Z Near

The distance from the camera to start the volume.

Z Far

The distance from the camera to stop the volume.

Use Camera’s Window

If set, the camera’s window scale, offset, and crop parameters will be used in addition to the following Window X/Y settings.

Window X/Y

The min/max portions of the camera’s view to fill with the volume. This allows you to add padding to ensure good boundary conditions or focus into a key area of the scene.

Uniform Sampling

It is often advantageous to make sure voxels in a volume are cubes. This option allows the resolution of the volume to be specified without having to worry about matching the size and resolution fields. This parameter controls which axis is divided into Uniform Sampling Divisions.

Uniform Sampling Divs

The number of voxels to divide the Uniform Sampling axis into. The other axes will be divided into the number of cells that fit for this voxel size.

Sampling Divs

When using non-uniform voxel cells, each dimensions resolution can be specified here.

Div Size

The uniform size of the voxels, when specifying the voxel size directly. The given sized box will be filled by voxels of this size.

Z Resolution Scale

The voxel resolution on the Z-axis is scaled by this number. This is useful for camera volumes where you may want less detail along the camera viewing direction. By setting the Uniform Sampling to X-Axis, you can then specify the number of voxels you want across the X axis of the screen directly, let the Y-axis be auto-computed to preserve aspect, and then adjust the scale factor.


The volume from camera respects the camera’s crop/window size options in addition to its own.


Border Type

The behavior when the volume is sampled outside of its defined box.


The border value will be returned.


The volume will wrap, returning values from the opposite side of the volume.


The value at the edge of the volume closest to the sample will be returned.


The volume will be treated as a signed distance field. The distance from the sample point to the closest point on the volume will be added to the value at that closest point. This ensures the volume continues to approximate distances outside of its defined box.

Border Value

When the border type is constant, this is the value returned for out of bounds sampling.

Constant Tolerance

When tiles in the volume are compressed to constant tiles this will be the tolerance used to determine if the tile is constant. Zero will only allow lossless compression.

Quantization Tolerance

When compressing tiles by quantizing their values this is the tolerance to use. This can often be larger than the constant tile as some of the quality can be recovered by the dithering. Zero disables quantization.


When voxels are quantized to a lower bit depth some of the lost information can be recovered by adding noise to the pre-quantized voxels. This can be thought of as trading bit depth in the voxel with spatial resolution.

Dithering avoids banding in the resulting volume and, as volumes are often integrated for display, can keep the original weight of the volume.

Setting dithering to none will just do a pure thresholding operation. Dithering of ordered will use a constant dither matrix over each tile.

Use 16bit Float

While 32 bit floats are still used for computation, whenever they are stored in the volume they are reduced to 16 bit floats. This cuts memory consumption in half at the cost of slightly higher computation costs and reduced precision of the floats.

Display Mode

How this volume primitive will be displayed in the viewport. This does not affect the underlying volume at all, just its display-time appearance.


The volume is rendered as smoke. Values of 0 or less are fully transparent. If lights are present, they are self-shadowed with the volume.


The volume is rendered as transparent smoke. Values of 0 or less are fully transparent. Lights are ignored, reducing computation time. Instead, the smoke is colored a rainbow hue according to the position in the bounding box.


An isosurface of equal valued voxels is extracted from the volume and displayed. This Display Isocontour is used to determine which isosurface is extracted.


The contents of the volume are not rendered at all.

Display Density

Controls the fall off rate for the smoke visualization. Lower values allows the smoke to be more transparent.

Display Isocontour

Which isocontour to extract from the volume. The default of 0 is good for SDF volumes. Fog style volumes would work better with something non-zero, such as 0.5.


Bounding source

If you connect geometry to this input, Volume will create a bounding box for the input geometry. (Otherwise, it uses the parameters to control the size and position of the box.)

This is not used when the From Camera source is applied.

See also

Geometry nodes