Houdini 20.0 Nodes Geometry nodes

VDB from Polygons geometry node

Converts polygonal surfaces and/or surface attributes into VDB volume primitives.

On this page
Since 12.5

See volumes for an explanation of standard volumes and OpenVDB volumes.


The input geometry must be a quad or triangle mesh. This node will “convex” the input surface into such a mesh if it isn’t.

This node can create a distance field (signed (SDF) or unsigned) and/or a density (fog) field.


If you create an Unsigned Distance Field, inside and outside will not be considered and the source geometry doesn’t have to be airtight.

When you create a fog field you can choose to fill the band of voxels on the surface or (if you have an airtight surface) fill the surface (see the Fill interior parameter).

Since VDB primitives only store the voxels around the surface, they can have a much a higher effective resolution than creating a traditional volume with IsoOffset.

You can connect a VDB to the second input to automatically use that VDB’s orientation and voxel size (see the Reference VDB parameter).


Voxel Size

The size of voxels in the output VDB volume. Surface features smaller than this will not be in the output VDB.

Reference VDB

If the second input is connected, you can enter the name of a VDB primitive in the second input to copy the orientation and voxel size from it.

See specifying volumes.

Distance VDB

Creates a signed distance field (SDF). An SDF stores the distance to the surface in each voxel. (If the voxel is inside, the distance is negative.)


Creates a density field. Voxels in the band on the surface store 1 and voxels outside store 0. The size of the filled band is controlled with the Interior Band Voxels.

Turn on Fill interior to create a solid VDB from an airtight surface instead of a narrow band.

Surface Attributes

You can generate additional VDB primitives that store the values of primitive (face), point, or vertex attributes. Only voxels in the band around the surface will be set.


The name of point, vertex, or primitive attribute to create a VDB from.

VDB Name

A new name for the generated VDB primitive storing the attribute values. Leave this blank to use the attribute name.

Vector Type

How vector values should be interpreted.

Use World Space for Band

Sets whether Exterior band and Interior band are specified in Houdini units. When this option is off, the band width parameters are in voxels.

Exterior Band Voxels

How many voxels outside the surface to fill in the generated VDB (when Use world space for band is off).

Exterior Band

How many Houdini units outside the surface to fill in the generated VDB (when Use world space for band is on).

Interior Band Voxels

How many voxels inside the surface to fill in the generated VDB (when Use world space for band is off).

Interior Band

The distance to compute the distance field inside the mesh.

Fill Interior

In SDF mode, Fill Interior extends the signed value all the way to the middle of the volume. In Fog mode, a gradient is applied from 0 at the surface (0 values of the SDF) to 1 at the innermost distance of the SDF Field (the most negative SDF values).

Unsigned Distance Field

When creating a Distance VDB, simply store the distance from the voxel to the surface (no negative values). This avoids trying to figure out inside and outside, so the surface doesn’t need to be airtight.

This is similar to the Minimum function of the Iso Offset SOP.

Preserve Holes

Uses the Generalized Winding Number to determine if a voxel is inside or outside. It will properly keep holes and generally perform better at closing small gaps provided the input polygons have the proper orientations.

The normal behavior in VDB defines the outside of the object as any voxel reachable from a point outside. A flood-fill is done from the outside and all voxels that can be reached without crossing the rasterized polygons are marked as outside. Anything not reached is classified as inside. This allows proper rasterization of self-intersecting and kit-bashed models, but it means that there is no way to specify internal holes in a model.


Polygonal mesh to convert

The polygonal surface to convert.

Optional reference VDB

If connected, this node copies the orientation and voxel size from a VDB primitive in this input.

See also

Geometry nodes