Houdini 20.5 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.

Tip

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

Parameters

Rank

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.

Name

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.

Dimensions

Center/Size

Size

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

Center

The center of the volume box.

Taper

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.

Plane

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

From Camera

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.

Note

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

Properties

Border Type

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

Repeat

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

Streak

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

SDF

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.

Mirror

Similar to Repeat, but rather than wrapping immediately, the sampling reflects at the boundary.

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.

Dithering

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.

Smoke

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.

Rainbow

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.

Isosurface

An isosurface of equal valued voxels is extracted from

the volume and displayed. This Display Isocontour is used to determine which isosurface is extracted.

Invisible

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.

Volume Type Info

This sets the semantic meaning of the volume. It can be used for visualization or for determining how to transform the data of the volume.

None

The volume contains data with no special meaning, or a meaning not covered by this list.

Color

The voxels contain colour information, so may need to be colour corrected.

Position

The voxels specify a location, so should be rotated and translated.

Vector

The voxels specify a direction, so should be rotate but not translated.

Signed Normal

The voxels specify normals. These are usually unit in length. Special case has to be done for scaling them compared to Vectors.

Offset Normal

A special type of normal where they are offset by 0.5 and scaled to fit in the 0..1 range. This is used to interface with formats where only 0..1 values are present.

Texture Coordinate

A location in a texture, usually thus 0..1 in range.

ID

An identification. Often used for integer volumes, implies the actual value isn’t arithmetic.

Mask

A scalar value from 0..1 meant to mask out operations. Usually 1 will apply the operation and 0 not. Note that a volume flagged with this may have values out of this range, this is a hint of the intended use.

SDF

A signed distance field. Negative values represent the inside and positive values the outside. The value itself is the world space distance to the surface, which is a value of 0.

Height

A height field. The values are distances, usually in worldspace, above the surface of the volume that the surface has.

Visualize Tiling

For volume displayed as images, expand the size of the image by using the border conditions of the image. This doesn’t affect the actual data at all, but allows one to see what it would look like if it was tiled.

Inputs

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