comfyui_pcg docs

Volumes & VDB#

VDB creation, active regions, level sets, fields and the rest of the Volume SOPs (pcg106).

68 nodes.

Back to the reference index

Contents#

Nodes#

Convert VDB (PCG)#

PCG_ConvertVDB · category PCG/volume · Houdini: Convert VDB (SOP)

Converts between VDBs, dense volumes, polygons, fog and SDF.

Convert VDB (PCG): input and result

To VDB (from a Houdini volume; Deactivate Tolerance drops background voxels), to Volume (densify, no mask), to Polygons (closed iso-surface at Isovalue; Adaptivity reduces the face count), or between classes: fog -> SDF (Fog Isovalue, ±Half Band voxels) and SDF -> fog (OpenVDB's ramp across the interior band).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Convert To convert_tomenuVDBTarget: VDB, dense volume, polygons, fog to SDF, or SDF to fog. Options: VDB (vdb), Volume (volume), Polygons (polygons), Fog to SDF (sdf), SDF to Fog (fog).
Isovalue isovaluefloat0Surface value for polygons. Hidden when convert_to ≠ polygons.
Fog Isovalue fog_isovaluefloat0.5Fog value that becomes the SDF surface. Hidden when convert_to ≠ sdf.
Half-Band Voxels half_bandfloat [0.5..]3Half width of the SDF band in voxels (and the ramp width for SDF to fog). Hidden when convert_to = vdb } { convert_to = volume } { convert_to = polygons.
Adaptivity adaptivityfloat [0.0..0.99]0Reduce the polygon count by this fraction. Hidden when convert_to ≠ polygons.
Keep Original Geometry keep_originaltoggleoffKeep the volumes next to the polygons. Hidden when convert_to ≠ polygons.
Deactivate Tolerance deactivate_tolerancefloat [0.0..]0When converting to VDB, deactivate voxels within this distance of the background. Hidden when convert_to ≠ vdb.

VDB (PCG)#

PCG_VDB · category PCG/volume · Houdini: VDB (SOP)

Creates an empty or filled VDB volume of a given class, type and voxel size.

Creates a VDB prim covering the reference geometry's bounds (+ Padding) or Size / Center at Voxel Size. Class SDF / Fog / None, scalar or vector. Empty (no active voxels, every voxel = Background) unless Fill Active is on (every voxel active with Value). Background defaults to 0 (fog / none) or 3 voxels (SDF).

Inputs

InputTypeDescription
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Name namestringdensityName of the new VDB.
Class vdb_classmenuFog VolumeGrid class: fog volume (density), level set (SDF, negative inside) or none. Options: Fog Volume (fog), Level Set (SDF) (sdf), None (none).
Vector (3 Floats) vectortoggleoffMake a vector grid (three floats per voxel) instead of a scalar one.
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).
Size size_x size_y size_zfloat [0.0..]1, 1, 1Size of the box the grid covers (when there is no reference geometry).
Center center_x center_y center_zfloat0, 0, 0Centre of the box.
Padding paddingfloat [0.0..]0Extra space around the reference bounds or the box.
Default Background auto_backgroundtoggleonUse the default background: 0, or 3 voxels for an SDF.
Background backgroundfloat0Background value (the value of every inactive voxel). Disabled when auto_background is on.
Fill Active fill_activetoggleoffMake every voxel active with Value; otherwise the VDB is empty.
Value valuefloat0Value of the voxels when Fill Active is on. Disabled when fill_active is off.

VDB Activate (PCG)#

PCG_VDBActivate · category PCG/volume · Houdini: VDB Activate (SOP)

Changes which voxels of a VDB are active, by box, voxel range, dilation, reference geometry or value.

VDB Activate (PCG): input and result

Combines the active region with a region (Union / Intersect / A − B / Copy). Region Type: Position (world box), Voxel (inclusive index box, voxel 0 = the bounding-box minimum), Expand (dilate by voxels or distance; face / face+edge / face+edge+vertex pattern), Reference (second input: bounding box, its VDBs' active voxels, the convex hull of its points, or inside its implicit surface, offset in voxels / world), Deactivate (voxels within Tolerance of the background) and Fill SDF (the inside of an SDF). Union / Copy can write Value.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Operation operationmenuUnionHow the region combines with the current active region: union, intersect, A − B (deactivate the region) or copy (exactly the region). Options: Union (union), Intersect (intersect), A - B (subtract), Copy (copy).
Write Value set_valuetoggleonWrite Value into the voxels the region activates (Union and Copy). Hidden when operation = intersect } { operation = subtract.
Value valuefloat1Value written into the activated voxels. Hidden when operation = intersect } { operation = subtract. Disabled when set_value is off.
Region Type regionmenuPositionHow the region is given: a world box, an index box, by expanding the active region, from a reference, by deactivating background voxels, or by filling the inside of an SDF. Options: Position (position), Voxel (voxel), Expand (expand), Reference (reference), Deactivate (deactivate), Fill SDF (fillsdf).
Center center_x center_y center_zfloat0, 0, 0Centre of the world box; voxels touching the box are in the region. Hidden when region ≠ position.
Size size_x size_y size_zfloat [0.0..]0, 0, 0Size of the world box. Hidden when region ≠ position.
Min min_x min_y min_zint0, 0, 0Minimum voxel index (voxel 0 is at the bounding-box minimum). Hidden when region ≠ voxel.
Max max_x max_y max_zint0, 0, 0Maximum voxel index (inclusive). Hidden when region ≠ voxel.
Expand Voxels expandint [0..1000]1Dilate the active region by this many voxels. Hidden when region ≠ expand.
Expand Distance expand_distfloat [0.0..]0Dilate by at least this world distance. Hidden when region ≠ expand.
Expansion Pattern patternmenuFacesNeighbour pattern of the dilation. Options: Faces (face), Faces and Edges (faceedge), Faces, Edges and Vertices (faceedgevertex). Hidden when region ≠ expand.
Bound Group bound_groupstring(empty)Which volumes of the reference input are used. Hidden when region ≠ reference.
Activate Using VDBs use_vdbtoggleoffActivate where the reference VDBs are active. Hidden when region ≠ reference.
Activate Using Convex Hull use_hulltoggleoffActivate inside the convex hull of the reference points. Hidden when region ≠ reference.
Activate Using Implicit Surface use_implicittoggleoffActivate inside the implicit surface of the reference volumes (SDF < offset, fog > 0.5). Hidden when region ≠ reference.
Voxel Offset voxel_offsetfloat0Grow (positive) or shrink the hull / implicit surface by this many voxels. Hidden when region ≠ reference.
World Offset world_offsetfloat0Grow or shrink the hull / implicit surface by this world distance. Hidden when region ≠ reference.
Deactivate Tolerance bg_tolerancefloat [0.0..]0Deactivate voxels within this distance of the background value. Hidden when region ≠ deactivate.
Prune prunetoggleoffCollapse constant 8³ leaves afterwards.
Prune Tolerance prune_tolerancefloat [0.0..]0Tolerance for pruning. Disabled when prune is off.

VDB Activate SDF (PCG)#

PCG_VDBActivateSDF · category PCG/volume · Houdini: VDB Activate SDF (SOP)

Activates a narrow band of a given width around the surface of an SDF, with true distances.

The narrow band |φ| ≤ Half-Width voxels around the surface becomes active and gets true distances (redistanced from the zero crossing); everything else is inactive ±background (the background becomes the band width). The input SDF is assumed to be right near its surface.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Half-Width half_widthfloat [0.1..1000.0]3Width of the active band on each side of the surface, in voxels.

VDB Advect (PCG)#

PCG_VDBAdvect · category PCG/volume · Houdini: VDB Advect (SOP)

Moves volume content through a velocity field.

VDB Advect (PCG): input and result

Moves the selected grids through a velocity (a vector VDB, or vel.x/.y/.z volumes) in the second input for Timestep: Semi-Lagrangian / Mid-Point / RK3 / RK4 back-tracing, Substeps, limiter (none / clamp to the source neighbourhood extrema / revert to first order). VDB grids grow so the content does not leave them; SDFs (Respect Grid Class) are renormalised.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
velocityGEOMETRYVelocity volume(s): a vector volume or vel.x / vel.y / vel.z.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Velocity vel_namestring(empty)Name of the velocity volume (empty = the first vector volume, or three scalar volumes vel.x / vel.y / vel.z).
Respect Grid Class respect_classtoggleonRenormalise SDFs after advection.
Timestep timestepfloat [-10000.0..10000.0]0.0416667Time to advect for.

General Advection

ParameterTypeDefaultDescription
Substeps substepsint [1..1000]1Substeps per timestep.
ParameterTypeDefaultDescription
Advection Scheme advectionmenuSemi-LagrangianIntegration scheme of the back-tracing. Options: Semi-Lagrangian (semi), Mid-Point (mid), 3rd order Runge-Kutta (rk3), 4th order Runge-Kutta (rk4).
Limiter Scheme limitermenuNo limiterKeeps higher-order schemes from overshooting. Options: No limiter (none), Clamp to extrema (clamp), Revert to 1st order (revert). Hidden when advection = semi.

VDB Advect Points (PCG)#

PCG_VDBAdvectPoints · category PCG/volume · Houdini: VDB Advect Points (SOP)

Moves points through a velocity field or onto a closest-point field.

VDB Advect Points (PCG): input and result

Advection (RK1–RK4 through the velocity for Timestep in Substeps), Projection (to a closest-point vector field, VDB Analysis → Closest Point) or Constrained Advection (both); Output Streamlines adds the paths as polylines.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
velocityGEOMETRYVelocity volume(s): a vector volume or vel.x / vel.y / vel.z.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Point Group groupstring(empty)Points to move (empty = all).
Velocity VDB vel_namestring(empty)Name of the velocity volume (empty = the first vector volume, or three scalar volumes vel.x / vel.y / vel.z).
Operation operationmenuAdvectionAdvect, project onto a closest-point field, or both. Options: Advection (advection), Projection (projection), Constrained Advection (constrained).
Integration integrationmenu4th order Runge-KuttaRunge-Kutta order. Options: 4th order Runge-Kutta (rk4), Forward Euler (rk1), 2nd order Runge-Kutta (rk2), 3rd order Runge-Kutta (rk3). Hidden when operation = projection.
Timestep timestepfloat [-10000.0..10000.0]0.0416667Time to advect for. Hidden when operation = projection.
Substeps substepsint [1..1000]1Steps per timestep. Hidden when operation = projection.
Closest-Point VDB cpt_namestring(empty)Closest-point vector volume (from VDB Analysis). Hidden when operation = advection.
Iterations iterationsint [0..100]0Extra projection passes. Hidden when operation = advection.
Output Streamlines streamlinestoggleoffAdd the point paths as polylines.

VDB Analysis (PCG)#

PCG_VDBAnalysis · category PCG/volume · Houdini: VDB Analysis (SOP), Volume Analysis (SOP)

Computes gradient, curvature, Laplacian, closest point, divergence, curl, length or normalized fields.

Gradient, Curvature (mean curvature ∇·(∇φ/|∇φ|)), Laplacian, Closest Point (P − φ∇φ) on scalar grids; Divergence, Curl, Length, Normalize on vector grids. Central differences in world units. An optional mask VDB (second input) zeroes the result outside its active voxels. Vector results are vector grids (VDB Vector Split for .x / .y / .z).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
mask (optional)GEOMETRYOptional volume used as a mask.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Operator operatormenuGradient (Scalar->Vector)The quantity to compute; the first four need scalar volumes, the rest vector volumes. Options: Gradient (Scalar->Vector) (gradient), Curvature (Scalar->Scalar) (curvature), Laplacian (Scalar->Scalar) (laplacian), Closest Point (Scalar->Vector) (closestpoint), Divergence (Vector->Scalar) (divergence), Curl (Vector->Vector) (curl), Length (Vector->Scalar) (length), Normalize (Vector->Vector) (normalize).
Mask VDB mask_namestring(empty)Name of the mask volume in the mask input (empty = the first one).
Output Name output_namemenuKeep Incoming VDB NamesKeep the name, append the operator, or use a custom name. Options: Keep Incoming VDB Names (keep), Append Operation Name (append), Custom Name (custom).
Custom Name custom_namestring(empty)Custom output name. Hidden when output_name ≠ custom.

VDB Clip (PCG)#

PCG_VDBClip · category PCG/volume · Houdini: VDB Clip (SOP)

Deactivates the voxels of a VDB outside (or inside) a box, a mask VDB or a camera frustum.

VDB Clip (PCG): input and result

Keeps the active voxels inside (or outside, Keep Inside off) the clipping region -- the bounding box of the second input, the active voxels of a mask VDB there, or the view frustum of the camera input (frame edges, near and far planes) -- expanded by Padding; the rest become inactive background. For SDFs the removed voxels take the outside background value. The grid is not resampled into a frustum-shaped grid; voxels keep their places.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
clip (optional)GEOMETRYGeometry whose bounding box (or mask VDB) defines the clipping region; not needed for Camera Frustum.
camera (optional)PCGCAMCamera whose view frustum is the clipping region when Clip To is Camera Frustum.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Keep Inside insidetoggleonKeep the voxels inside the region (off: keep those outside).
Clip To clippermenuGeometry Bounding BoxWhat defines the region: the second input's bounding box, a mask VDB in the second input, or the camera's view frustum. Options: Geometry Bounding Box (geometry), Mask VDB (mask), Camera Frustum (camera).
Mask VDB maskstring(empty)Name of the mask VDB in the second input. Hidden when clipper ≠ mask.
Padding paddingfloat0Grows the region by this world distance.

VDB Combine (PCG)#

PCG_VDBCombine · category PCG/volume · Houdini: VDB Combine (SOP)

Combines pairs of volumes with arithmetic, SDF boolean or activity operations.

VDB Combine (PCG): input and result

A × A Multiplier with B × B Multiplier (B resampled to A's grid; A grows to cover B for VDBs): Copy A / B, Invert A, Add, Subtract, Multiply, Divide, Maximum, Minimum, (1 − A) × B, A + (1 − A) × B, SDF Union / Intersection / Difference, Replace A with Active B, and Activity Union / Intersection / Difference (masks only). Collation: A/B pairs, each A with the first B, or flatten all A into the first A. Deactivate Background Voxels, Prune.

Inputs

InputTypeDescription
aGEOMETRYA volumes.
b (optional)GEOMETRYB volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group A agroupstring(empty)A volumes.
Group B bgroupstring(empty)B volumes.
Collation collationmenuCombine A/B PairsHow A and B are paired. Options: Combine A/B Pairs (pairs), Combine Each A With First B (awithfirstb), Flatten All A (flattena).
Operation operationmenuAddHow A and B combine. Options: Add (add), Copy A (copya), Copy B (copyb), Invert A (inverta), Subtract (subtract), Multiply (multiply), Divide (divide), Maximum (maximum), Minimum (minimum), (1 - A) * B (compatimesb), A + (1 - A) * B (apluscompatimesb), SDF Union (sdfunion), SDF Intersection (sdfintersect), SDF Difference (sdfdifference), Replace A with Active B (replacewithactive), Activity Union (topounion), Activity Intersection (topointersect), Activity Difference (topodifference).
A Multiplier amultfloat1Multiplies A first.
B Multiplier bmultfloat1Multiplies B first.
Interpolation interpmenuLinearInterpolation when sampling another grid: linear (trilinear) or nearest. Options: Linear (linear), Nearest (point).
Deactivate Background Voxels deactivatetoggleoffDeactivate voxels equal to the background afterwards.
Deactivate Tolerance bg_tolerancefloat [0.0..]0Tolerance for that. Disabled when deactivate is off.
Prune prunetoggleoffCollapse constant leaves afterwards.
Prune Tolerance prune_tolerancefloat [0.0..]0Tolerance for pruning. Disabled when prune is off.

VDB Densify (PCG)#

PCG_VDBDensify · category PCG/volume · Houdini: VDB Densify (SOP)

Makes every voxel of a VDB active.

Every voxel becomes active (the VDB keeps its values; inactive ones held the background).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.

VDB Diagnostics (PCG)#

PCG_VDBDiagnostics · category PCG/volume · Houdini: VDB Diagnostics (SOP)

Checks VDBs for invalid values, wrong backgrounds and bad SDF gradients, and optionally repairs them.

Tests: finite values, a valid background, inactive voxels holding the background, SDF gradient magnitude within Tolerance of 1 (in the band), active values within [Min, Max]. Repair: non-finite -> background, inactive -> background, values clamped into the range. Mark: adds "<name>_bad" fog VDBs = 1 at failing voxels. The report lists the counts per volume.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.

Tests

ParameterTypeDefaultDescription
Finite Values test_finitetoggleonCheck for NaN and infinite values.
ParameterTypeDefaultDescription
Uniform Background test_backgroundtoggleonCheck that the background value is valid.
Inactive Voxels Hold the Background test_inactivetoggleonCheck that inactive voxels hold the background.
SDF Gradient Magnitude test_gradienttoggleonCheck that |∇φ| is close to 1 in the band of SDFs.
Gradient Tolerance gradient_tolerancefloat [0.0..]0.2Allowed deviation of |∇φ| from 1. Disabled when test_gradient is off.
Value Range test_rangetoggleoffCheck that active values lie in the range.
Range range_min range_maxfloat0, 1Allowed value range. Disabled when test_range is off.

Output

ParameterTypeDefaultDescription
Repair repairtoggleoffFix what can be fixed: invalid and inactive values become the background, values are clamped into the range.
ParameterTypeDefaultDescription
Mark Failing Voxels marktoggleoffAdd a fog VDB named <name>_bad that is 1 at failing voxels.

VDB Extrapolate (PCG)#

PCG_VDBExtrapolate · category PCG/volume · Houdini: VDB Extrapolate (SOP)

Widens an SDF band, converts fog to SDF, or extends fields off a surface.

Expand SDF Narrowband (by Dilation voxels, true distances), Convert Fog VDB to SDF, Renormalize SDF, or Extend Field(s) off the surface of the fog / SDF source: each voxel of the Extension Group grids takes the value at its closest voxel on the surface (what fast sweeping converges to).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Source volume (an SDF or a fog volume).
Operation modemenuExpand SDF NarrowbandWhat to do: widen the SDF band, convert fog to SDF, renormalise, or extend fields off the surface. Options: Expand SDF Narrowband (dilate), Convert Fog VDB To SDF (convert), Renormalize SDF (renormalize), Extend Fields of Fog VDB (fogext), Extend Fields of SDF VDB (sdfext).
Dilation dilateint [0..1000]3Voxels to widen the band by. Hidden when mode ≠ dilate.
Dilation Pattern patternmenuFacesNeighbour pattern of the widening. Options: Faces (face), Faces and Edges (faceedge), Faces, Edges and Vertices (faceedgevertex). Hidden when mode ≠ dilate.
Fog Isovalue fog_isovaluefloat0.5Surface value of the fog source. Hidden when mode ≠ convert mode ≠ fogext.
SDF Isovalue sdf_isovaluefloat0Surface value of the SDF source. Hidden when mode ≠ renormalize mode ≠ sdfext.
Extension Group ext_groupstring(empty)Volumes (on the same grid) whose values are extended off the surface. Hidden when mode ≠ fogext mode ≠ sdfext.

VDB Fill (PCG)#

PCG_VDBFill · category PCG/volume · Houdini: VDB Fill (SOP)

Sets a box of voxels to a value and activates or deactivates it.

VDB Fill (PCG): input and result

Sets a box -- inclusive index range, world range, or the reference geometry's bounds -- to Value (x only for scalar grids) and makes it active (or inactive: then it takes the background).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Bounds modemenuMin and Max in Index SpaceHow the box is given: index range, world range, or the reference geometry's bounds. Options: Min and Max in Index Space (index), Min and Max in World Space (world), Reference Geometry (geom).
Min Coord min_x min_y min_zint0, 0, 0Minimum voxel index. Hidden when mode ≠ index.
Max Coord max_x max_y max_zint0, 0, 0Maximum voxel index (inclusive). Hidden when mode ≠ index.
Min Coord wmin_x wmin_y wmin_zfloat0, 0, 0Minimum world corner. Hidden when mode ≠ world.
Max Coord wmax_x wmax_y wmax_zfloat0, 0, 0Maximum world corner. Hidden when mode ≠ world.
Value value_x value_y value_zfloat0, 0, 0Fill value (x only for scalar volumes).
Active activetoggleonActivate the box (off: deactivate it; it then holds the background).

VDB Fracture (PCG)#

PCG_VDBFracture · category PCG/volume · Houdini: VDB Fracture (SOP)

Cuts SDF volumes into fragments with cutter shapes.

VDB Fracture (PCG): input and result

Cuts each SDF with the cutters of the second input (polygons -> exact SDF on the same grid, or SDF VDBs), optionally instanced on the points of the third input (centred, random rotation): inside piece max(φ, φc), residual max(φ, −φc). Allow Cutter Overlap cuts the earlier fragments too; Separate Cutters by Connectivity uses each connected piece of the cutter separately.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
cuttersGEOMETRYCutter geometry: closed polygons or SDF volumes.
points (optional)GEOMETRYPoints.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Separate Cutters by Connectivity separate_cutterstoggleoffCut with each connected piece of the cutter separately.
Allow Cutter Overlap cutter_overlaptoggleoffLater cutters cut the fragments made by earlier ones too.
Center Cutter Geometry center_cuttertoggleonCentre the cutter on each instance point.
Randomize Cutter Rotation random_rotationtoggleoffRotate each cutter instance randomly.
Random Seed rand_seedint [0..]1Seed for the random rotations. Hidden when random_rotation is off.
Split Input Fragments into Primitives segment_fragmentstoggleoffSplit fragments into their connected pieces.
Fragment Group fragment_groupstring(empty)Prim group for the fragments.
Randomize Fragment Colors visualizetoggleonGive fragments random colors.

VDB from Particle Fluid (PCG)#

PCG_VDBFromParticleFluid · category PCG/volume · Houdini: VDB from Particle Fluid (SOP)

Builds a smooth fluid surface SDF from particles.

VDB from Particle Fluid (PCG): input and result

A smooth fluid surface from particles: spheres of Influence Scale × separation / 2 (isolated droplets: Droplet Scale), voxel size = Particle Separation × Voxel Scale, then Dilate, Smooth passes and Erode (in units of half a separation).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Point Group groupstring(empty)Points to use (empty = all).
Particle Separation separationfloat [1e-06..]0.1Typical distance between particles.
Voxel Scale voxel_scalefloat [0.05..4.0]0.5Voxel size relative to the separation.
Influence Scale influence_scalefloat [0.5..]3Sphere radius relative to half the separation.
Droplet Scale droplet_scalefloat [0.0..]1Radius of isolated droplets relative to half the separation.

Filtering

ParameterTypeDefaultDescription
Dilate dilatefloat [0.0..]1Grow the surface (in half separations).
ParameterTypeDefaultDescription
Smooth smoothint [0..20]1Number of smoothing passes.
Erode erodefloat [0.0..]1Shrink the surface back (in half separations).
Surface VDB Name namestringsurfaceName of the output volume.

VDB from Particles (PCG)#

PCG_VDBFromParticles · category PCG/volume · Houdini: VDB from Particles (SOP)

Builds an SDF from points as spheres of their pscale.

VDB from Particles (PCG): input and result

SDF union of spheres of radius pscale × Particle Scale; particles smaller than Minimum Radius (voxels) are ignored; Velocity Trails add tapering spheres back along v × Velocity Scale every Trail Resolution × radius. Optional fog VDB.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Point Group groupstring(empty)Points to use (empty = all).
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).
Use World Space for Band world_unitstoggleoffGive band widths in world units instead of voxels.
Half-Band half_bandfloat [0.5..]3Half width of the narrow band.
Particle Scale particle_scalefloat [0.0..]1Multiplies pscale (the sphere radius).
Minimum Radius min_radiusfloat [0.0..]1.5Particles smaller than this many voxels are ignored.
Velocity Trails velocity_trailstoggleoffAdd trails of spheres behind each particle along -v.
Velocity Scale velocity_scalefloat1Scales the trail length. Hidden when velocity_trails is off.
Trail Resolution trail_resolutionfloat [0.01..]1Spacing of the trail spheres, relative to the radius. Hidden when velocity_trails is off.

Output

ParameterTypeDefaultDescription
Distance VDB build_distancetoggleonOutput the SDF.
ParameterTypeDefaultDescription
Distance VDB Name distance_namestringsurfaceName of the SDF. Disabled when build_distance is off.
Fog VDB build_fogtoggleoffOutput a fog volume.
Fog VDB Name fog_namestringdensityName of the fog volume. Disabled when build_fog is off.

VDB from Polygons (PCG)#

PCG_VDBFromPolygons · category PCG/volume · Houdini: VDB from Polygons (SOP)

Builds an SDF (and optionally fog and attribute volumes) from a polygon mesh.

VDB from Polygons (PCG): input and result

Exact SDF of the mesh at Voxel Size (or the reference VDB's), narrow band of Exterior / Interior Band voxels (or world units; Fill Interior keeps the whole inside), or an unsigned distance field. Optional fog VDB (0 outside, 0 -> 1 across the interior band) and surface attribute VDBs: for each listed point / vertex / prim attribute, the value at the closest surface point.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).
Use World Space Units for Narrow Band world_unitstoggleoffGive band widths in world units instead of voxels.
Exterior Band ext_bandfloat [0.0..]3Width of the band outside the surface.
Interior Band int_bandfloat [0.0..]3Width of the band inside the surface. Disabled when fill_interior is on.
Fill Interior fill_interiortoggleoffKeep true distances for the whole inside.
Unsigned Distance Field unsignedtoggleoffOutput unsigned distances (works on open meshes).

Output

ParameterTypeDefaultDescription
Distance VDB build_distancetoggleonOutput the SDF.
ParameterTypeDefaultDescription
Distance VDB Name distance_namestringsurfaceName of the SDF. Disabled when build_distance is off.
Fog VDB build_fogtoggleoffOutput a fog volume.
Fog VDB Name fog_namestringdensityName of the fog volume. Disabled when build_fog is off.

Attribute Transfer

ParameterTypeDefaultDescription
Surface Attributes attributesstring(empty)Point, vertex or prim attributes to store in volumes (value at the closest surface point).

VDB LOD (PCG)#

PCG_VDBLOD · category PCG/volume · Houdini: VDB LOD (SOP)

Builds lower-resolution levels of detail of volumes.

VDB LOD (PCG): input and result

Level L keeps every 2^L-th sample after a 2^L box filter (level 0 = the input). Single Level, Level Range (start, end, step) or an LOD Pyramid of Count levels; outputs are named <name>_level<L> unless Preserve Grid Names (single level).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
LOD Mode lodmenuSingle LevelOne level, a range of levels, or a pyramid. Options: Single Level (single), Level Range (range), LOD Pyramid (mipmaps).
Level levelfloat [0.0..10.0]1Level to build (0 = the input; level L keeps every 2^L-th voxel). Hidden when lod ≠ single.
Range range_start range_end range_stepint [0..10]0, 2, 1Start, end and step of the levels. Hidden when lod ≠ range.
Count countint [1..10]2Number of pyramid levels. Hidden when lod ≠ mipmaps.
Preserve Grid Names reusetoggleoffKeep the input's name (single level only). Hidden when lod ≠ single.

VDB Merge (PCG)#

PCG_VDBMerge · category PCG/volume · Houdini: VDB Merge (SOP)

Merges VDBs with the same name (or all of them) into one.

VDBs of the same class collated by name / primitive number / all are merged into one whose grid covers all of them (first one's voxel size): fog add (or none), SDF union / intersect, other add.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Collation collationmenuNameWhich VDBs merge together: same name, same primitive number, or all. Options: Name (name), Primitive Number (primitive_number), All (all).
Interpolation interpmenuLinearInterpolation when sampling another grid: linear (trilinear) or nearest. Options: Linear (linear), Nearest (point).
Fog VDBs op_fogmenuAddOperation for fog VDBs. Options: Add (add), None (none).
SDF VDBs op_sdfmenuSDF UnionOperation for SDF VDBs. Options: SDF Union (sdfunion), SDF Intersect (sdfintersect), None (none).

VDB Metadata (PCG)#

PCG_VDBMetadata · category PCG/volume · Houdini: VDB Metadata (SOP)

Sets the name, class, background and VDB flag of volumes.

Sets the name, class, background and VDB flag of the selected volumes (each with a toggle).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Name namestring(empty)New name.
Name set_nametoggleoffChange the name.
Class vdb_classmenuLevel Set (SDF)New grid class. Options: Level Set (SDF) (sdf), Fog Volume (fog), None (none).
Class set_classtoggleoffChange the grid class.
Background backgroundfloat0New background value.
Background set_backgroundtoggleoffChange the background value (inactive voxels take it).
Is VDB vdbtoggleonVDB (on) or a dense Houdini volume (off).
VDB set_vdbtoggleoffChange whether the prim is a VDB.

VDB Morph SDF (PCG)#

PCG_VDBMorphSDF · category PCG/volume · Houdini: VDB Morph SDF (SOP)

Moves one SDF surface towards another over time.

VDB Morph SDF (PCG): input and result

Moves the source surface toward the target (second input): ∂φ/∂t + φ_target |∇φ| = 0 (Godunov upwind, CFL-limited substeps) for Timestep, renormalising every Renorm Steps substeps. A large timestep ends at the target. Optional alpha mask (third input) blends.

Inputs

InputTypeDescription
sourceGEOMETRYSource volumes.
targetGEOMETRYTarget SDF.
mask (optional)GEOMETRYOptional volume used as a mask.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Source source_groupstring(empty)Source SDFs.
Target target_groupstring(empty)Target SDF in the second input.
Timestep timestepfloat [0.0..10000.0]0.0416667How long to morph; long enough and the source becomes the target.
Renormalization Steps renorm_stepsint [0..100]3Renormalise every this many substeps (0 = never).

Alpha Mask

ParameterTypeDefaultDescription
Alpha Mask mask_namestring(empty)Name of the mask volume in the mask input (empty = the first one).
ParameterTypeDefaultDescription
Invert Alpha Mask invert_masktoggleoffInvert the mask: 0 becomes 1 and 1 becomes 0.
Min Mask Cutoff min_maskfloat0Mask values at or below this count as 0.
Max Mask Cutoff max_maskfloat1Mask values at or above this count as 1.

VDB Noise (PCG)#

PCG_VDBNoise · category PCG/volume · Houdini: VDB Noise (SOP)

Adds fractal noise to the surface of an SDF.

VDB Noise (PCG): input and result

φ − Amplitude × fractal Perlin noise (Frequency, Octaves, Lacunarity, Gain, Roughness, Noise Offset); Straight / Absolute / Inverse Absolute. Positive noise pushes the surface out. An optional mask volume (second input) suppresses or scales the noise.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
mask (optional)GEOMETRYOptional volume used as a mask.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Amplitude ampfloat1Noise amplitude; positive noise pushes the surface out.
Frequency freqfloat1Noise frequency.
Octaves octavesint [0..16]0Extra octaves.
Lacunarity lacunarityfloat2Frequency multiplier per octave.
Gain gainfloat1Amplitude multiplier per octave.
Roughness roughnessfloat1Extra amplitude multiplier per octave.
Surface Offset surface_offsetfloat0Offset of the surface the noise is applied around.
Noise Offset noise_offset_x noise_offset_y noise_offset_zfloat0, 0, 0Offset of the noise pattern.
Noise Mode modemenuStraightStraight noise, its absolute value, or one minus its absolute value. Options: Straight (straight), Absolute (abs), Inverse Absolute (invabs).

Mask

ParameterTypeDefaultDescription
Mask Group mask_groupstring(empty)Mask volume in the second input.
ParameterTypeDefaultDescription
Mask mask_modemenuNo noise if mask < thresholdHow the mask limits or scales the noise. Options: No noise if mask < threshold (maskless), No noise if mask > threshold (maskgreater), Mask (normalized) (maskgreaternml), Inverted mask (normalized) (masklessnml), Absolute mask (maskgreaterabs).
Mask Threshold thresholdfloat0Mask threshold.
Falloff fallofffloat [0.0..]0Soft range around the threshold.

VDB Occlusion Mask (PCG)#

PCG_VDBOcclusionMask · category PCG/volume · Houdini: VDB Occlusion Mask (SOP)

Marks the voxels hidden from a camera behind a surface.

A fog VDB "<name>_occlusion" on each SDF's grid: 1 where the voxel is hidden from the camera because the line of sight to the eye passes through the inside first; Erode shrinks it. (Houdini builds the mask in a camera frustum grid; here it lives on the input grid.)

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
cameraPCGCAMThe camera.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Erode erodeint [0..100]0Shrink the mask by this many voxels.
Ray Steps stepsint [4..1024]64Samples along each line of sight.

VDB Platonic (PCG)#

PCG_VDBPlatonic · category PCG/volume · Houdini: VDB Platonic (SOP)

Creates the SDF or fog of a sphere or a Platonic solid.

VDB Platonic (PCG): input and result

SDF (narrow band of Half-Band Width voxels) or fog of a sphere or a Platonic solid of the given radius (circumradius for the solids) and centre; exact distances to the solid's faces.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Solid Type solidmenuSphereShape. Options: Sphere (sphere), Tetrahedron (tetrahedron), Cube (cube), Octahedron (octahedron), Dodecahedron (dodecahedron), Icosahedron (icosahedron).
Radius/Size radiusfloat [1e-06..]1Radius of the sphere or circumradius of the solid.
Center center_x center_y center_zfloat0, 0, 0Centre.
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).
Half-Band Width half_widthfloat [0.5..]3Half width of the narrow band in voxels.
Convert to Fog Volume fogtoggleoffOutput fog instead of an SDF.
Name namestringsurfaceName of the output volume.

VDB Points Group (PCG)#

PCG_VDBPointsGroup · category PCG/volume · Houdini: VDB Points Group (SOP)

Groups points by percentage, bounding box or SDF range.

A point group from: a percentage or a count (random, or seeded by an attribute), a bounding box or the bounds of the second input, and an SDF range (the second input's SDF, Min ≤ φ ≤ Max, invertible). Filters combine with AND.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group Name group_namestringgroup1Name of the group to create.

Number

ParameterTypeDefaultDescription
Number enable_numbertoggleoffFilter by number.
ParameterTypeDefaultDescription
Mode number_modemenuPercentagePercentage or total count. Options: Percentage (percentage), Total (total).
Percent percentfloat [0.0..100.0]10Percentage of points. Hidden when number_mode ≠ percentage.
Count countint [0..]5000Number of points. Hidden when number_mode ≠ total.
Attribute Seed seed_attributestring(empty)Attribute used to make the random choice stable (empty = random).

Bounding

ParameterTypeDefaultDescription
Bounding enable_boxtoggleoffFilter by a box.
ParameterTypeDefaultDescription
Mode bound_modemenuBounding BoxA box, or the bounds of the second input. Options: Bounding Box (boundingbox), Bounding Object (boundingobject).
Size size_x size_y size_zfloat [0.0..]1, 1, 1Size of the box. Hidden when bound_mode ≠ boundingbox.
Center center_x center_y center_zfloat0, 0, 0Centre of the box. Hidden when bound_mode ≠ boundingbox.

SDF

ParameterTypeDefaultDescription
SDF enable_sdftoggleoffFilter by SDF value.
ParameterTypeDefaultDescription
Name sdf_namestring(empty)SDF volume (second input).
SDF Minimum sdf_minfloat-0.1Lowest SDF value.
SDF Minimum use_mintoggleonUse the minimum.
SDF Maximum sdf_maxfloat0.1Highest SDF value.
SDF Maximum use_maxtoggleonUse the maximum.
Invert inverttoggleoffInvert the SDF test.
Random Seed rand_seedint [0..]0Random seed.

VDB Potential Flow (PCG)#

PCG_VDBPotentialFlow · category PCG/volume · Houdini: VDB Potential Flow (SOP)

Computes the potential flow of a fluid around the solid of an SDF.

VDB Potential Flow (PCG): input and result

Flow around the solid of an SDF in a domain dilated by Dilation Voxels: ∇²φ = 0 with no flow through the solid (Neumann, driven by the Background Velocity) and φ = 0 at the domain border; outputs the velocity ∇φ (+ background when Apply Background Velocity) as a vector VDB, and optionally the potential.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Dilation Voxels dilation_voxelsint [1..1000]10Size of the flow domain around the solid, in voxels.
Iterations iterationsint [1..]1000Maximum solver iterations.
Tolerance tolerancefloat [0.0..1.0]0.0001Relative residual at which the solver stops.
Use Background Velocity use_backgroundtoggleonDrive the flow with a background velocity.
Background Velocity background_x background_y background_zfloat1, 0, 0Background (free-stream) velocity. Disabled when use_background is off.
Apply Background Velocity to Flow Field apply_backgroundtoggleonAdd the background velocity to the output.
Output Potential output_potentialtoggleoffAdd the potential volume.
Velocity Name namestringvelName of the velocity volume.

VDB Project Non-Divergent (PCG)#

PCG_VDBProjectNonDivergent · category PCG/volume · Houdini: VDB Project Non-Divergent (SOP)

Removes the divergence from a velocity field (pressure projection).

Removes the divergence of vector grids: ∇²p = ∇·u (conjugate gradient, Iterations / Tolerance), u − ∇p. Without a collider p = 0 beyond the grid; Bounding Box collider = no flow through the grid border; a VDB collider (second input) = no flow into its inside / active voxels. Output Pressure adds p.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
collider (optional)GEOMETRYOptional collider volume.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Iterations iterationsint [1..]1000Maximum solver iterations.
Tolerance tolerancefloat [0.0..1.0]0.0001Relative residual at which the solver stops.
Use Collider use_collidertoggleoffUse a collider.
Collider Type collider_typemenuBounding BoxBounding box (no flow through the grid border) or a static VDB. Options: Bounding Box (bbox), Static VDB (static). Disabled when use_collider is off.
Collider collider_namestring(empty)Collider volume in the second input. Hidden when collider_type ≠ static.
Invert Collider invert_collidertoggleoffSwap the collider's inside and outside. Hidden when collider_type ≠ static.
Output Pressure output_pressuretoggleoffAdd the pressure volume.

VDB Prune (PCG)#

PCG_VDBPrune · category PCG/volume · Houdini: VDB Prune (SOP)

Collapses constant regions of a VDB and deactivates background regions.

Value: 8³ leaves whose values differ by at most Tolerance collapse to one constant (their mean). Inactive: leaves within Tolerance of the background are deactivated. Level Set: voxels with |φ| ≥ background are deactivated (outside +background, inside −background).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Mode modemenuValueValue: collapse leaves of (almost) equal values; Inactive: deactivate leaves at the background; Level Set: deactivate voxels at or beyond the band. Options: Value (value), Inactive (inactive), Level Set (levelset).
Tolerance tolerancefloat [0.0..]0Values within this tolerance count as equal. Hidden when mode = levelset.

VDB Ray (PCG)#

PCG_VDBRay · category PCG/volume · Houdini: VDB Ray (SOP)

Projects points onto the surface of a volume, along their normals or to the closest point.

VDB Ray (PCG): input and result

Moves points onto the surface of the VDB in the second input: Ray Intersection along N (or reversed, from Bias; nearest or farthest hit; sphere tracing + bisection) or Closest Surface Point (the exact closest point on the extracted iso surface, at any distance from it). Scale moves only part of the way; Store Distances writes dist; Ray Hit Group collects hits.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
vdbGEOMETRYThe volume to project onto.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Point Group groupstring(empty)Points to project (empty = all).
Method methodmenuRay IntersectionAlong the normals (ray intersection) or to the closest surface point. Options: Ray Intersection (rayintersection), Closest Surface Point (closestpoint).
Isovalue isovaluefloat0Value that defines the surface (0 for an SDF, around 0.5 for fog).
Transform transformtoggleonMove the points.
Scale scalefloat1Move only this fraction of the way. Disabled when transform is off.
Store Distances store_disttoggleoffStore the distance moved in dist.
Intersect Farthest Surface farthesttoggleoffUse the farthest intersection instead of the nearest. Hidden when method ≠ rayintersection.
Reverse Rays reversetoggleoffShoot rays against the normals. Hidden when method ≠ rayintersection.
Bias biasfloat0Start the rays this far along them. Hidden when method ≠ rayintersection.
Create Ray Hit Group create_grouptoggleoffPut points that hit into a group.
Ray Hit Group hit_groupstringrayHitGroupName of the hit group. Disabled when create_group is off.

VDB Rebuild SDF (PCG)#

PCG_VDBRebuildSDF · category PCG/volume · Houdini: VDB Rebuild SDF (SOP)

Builds a clean SDF from an iso contour of any scalar volume.

VDB Rebuild SDF (PCG): input and result

An SDF from the Isovalue contour of any scalar grid (fog: dense = inside), with new exterior / interior bands (voxels or world units); Fill Interior keeps the whole inside active.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Isovalue isovaluefloat0Value that defines the surface (0 for an SDF, around 0.5 for fog).
Use World Space Units world_unitstoggleoffGive band widths in world units instead of voxels.
Exterior Band ext_bandfloat [0.0..]3Width of the band outside.
Interior Band int_bandfloat [0.0..]3Width of the band inside. Disabled when fill_interior is on.
Fill Interior fill_interiortoggleoffKeep the whole inside active.

VDB Remap (PCG)#

PCG_VDBRemap · category PCG/volume · Houdini: VDB Remap (SOP)

Remaps volume values from one range to another through a ramp.

Input Range -> Output Range through the Transfer Function ramp (empty = linear). Below / Above the input range: Clamp, Preserve (keep the value) or Extrapolate (continue the end slope). The background is remapped too; Deactivate turns voxels equal to the new background inactive.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Below Minimum belowmenuClampWhat happens below the input range: clamp, keep the value, or extrapolate. Options: Clamp (clamp), Preserve (preserve), Extrapolate (extrapolate).
Above Maximum abovemenuClampWhat happens above the input range. Options: Clamp (clamp), Preserve (preserve), Extrapolate (extrapolate).
Input Range in_min in_maxfloat0, 1Input range.
Output Range out_min out_maxfloat0, 1Output range.
Transfer Function rampstring(empty)Transfer function from the input range (x) to the output range (y); empty = linear.
Deactivate Background Voxels deactivatetoggleoffDeactivate voxels that end up equal to the remapped background.

VDB Renormalize SDF (PCG)#

PCG_VDBRenormalizeSDF · category PCG/volume · Houdini: VDB Renormalize SDF (SOP)

Restores the distance property of an SDF after it was edited.

Restores |∇φ| = 1 (exact distance to the zero crossing), keeping the band.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Iterations iterationsint [1..10]1Number of renormalisation passes.

VDB Resample (PCG)#

PCG_VDBResample · category PCG/volume · Houdini: VDB Resample (SOP)

Resamples volumes to a new voxel size or to match a reference VDB.

VDB Resample (PCG): input and result

Same world content on a new grid: Explicitly (scale the voxel size, translate in voxels, rotate about the pivot -- the grid stays axis aligned), To Match Reference VDB (second input), Using Voxel Size Only, or Using Voxel Scale Only. Nearest / linear interpolation; SDFs are redistanced (Rebuild SDF).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Define Transform modemenuUsing Voxel Size OnlyHow the new grid is defined. Options: Using Voxel Size Only (voxelsizeonly), Explicitly (explicit), To Match Reference VDB (refvdb), Using Voxel Scale Only (voxelscaleonly).
Reference ref_namestring(empty)Reference VDB in the second input. Hidden when mode ≠ refvdb.
Interpolation interpmenuLinearInterpolation when sampling another grid: linear (trilinear) or nearest. Options: Linear (linear), Nearest (point).
Translate Voxels t_x t_y t_zfloat0, 0, 0Translation in voxels. Hidden when mode ≠ explicit.
Rotate r_x r_y r_zfloat0, 0, 0Rotation in degrees (X, then Y, then Z). Hidden when mode ≠ explicit.
Scale s_x s_y s_zfloat1, 1, 1Scale of the voxel size. Hidden when mode ≠ explicit.
Pivot p_x p_y p_zfloat0, 0, 0Pivot for rotation and scale. Hidden when mode ≠ explicit.
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples). Hidden when mode ≠ voxelsizeonly.
Voxel Scale voxel_scalefloat [1e-06..]1Voxel size multiplier. Hidden when mode ≠ voxelscaleonly.
Rebuild SDF rebuild_sdftoggleonRedistance SDFs after resampling.
Transform Vectors xform_vectorstoggleoffRotate vector values too.

VDB Scatter (PCG)#

PCG_VDBScatter · category PCG/volume · Houdini: VDB Scatter (SOP)

Scatters points in the active voxels of volumes.

VDB Scatter (PCG): input and result

Points in the active voxels: Point Total, Point Density (per unit volume) or Points Per Voxel; Spread jitters within the voxel; Scale Density by Voxel Values (fog / other); SDFs scatter in the Interior, on the Isosurface (projected onto it) or in the Narrow Band. Keep Original Geometry, Scatter Group.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Keep Original Geometry keeptoggleoffKeep the incoming geometry in the output.
Mode modemenuPoint TotalHow many points: a total, a density per unit volume, or per voxel. Options: Point Total (count), Point Density (density), Points Per Voxel (pointspervoxel).
Point Total countint [0..]5000Total number of points. Hidden when mode ≠ count.
Points Per Voxel points_per_voxelfloat [0.0..]8Points per active voxel. Hidden when mode ≠ pointspervoxel.
Point Density densityfloat [0.0..]1Points per unit volume. Hidden when mode ≠ density.
Scale Density by Voxel Values multiplytoggleoffScale the density by the voxel values (fog).
Spread spreadfloat [0.0..1.0]1How far points may move from the voxel centre (fraction of a voxel).
SDF Domain sdf_domainmenuNarrow BandFor SDFs: the narrow band, the interior, or the iso-surface. Options: Narrow Band (band), Interior (interior), Isosurface (surface).
Isovalue isovaluefloat0Value that defines the surface (0 for an SDF, around 0.5 for fog).
Random Seed rand_seedint [0..]0Random seed.
Scatter Group scatter_groupstring(empty)Point group for the new points (empty = none).

VDB Segment by Connectivity (PCG)#

PCG_VDBSegment · category PCG/volume · Houdini: VDB Segment by Connectivity (SOP)

Splits volumes into their connected pieces.

VDB Segment by Connectivity (PCG): input and result

Splits each volume into connected pieces: SDF interiors, or active non-background voxels of fog / other grids (face connectivity). Pieces are named <name>_<n> (Append Segment Number) and get a random Cd (Color Segments).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Color Segments colortoggleonGive each piece a random color (Cd).
Append Segment Number to Grid Name append_numbertoggleonAppend the piece number to the name.

VDB Smooth (PCG)#

PCG_VDBSmooth · category PCG/volume · Houdini: VDB Smooth (SOP)

Smooths volumes with a mean, Gaussian or median filter, or offsets them.

VDB Smooth (PCG): input and result

Mean / Gaussian / Median over a cube of ± Filter Voxel Radius (or world radius), or Offset, Iterations times; only active voxels change; an optional alpha mask (second input, Min / Max cutoff, invert) blends.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
mask (optional)GEOMETRYOptional volume used as a mask.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Operation operationmenuMean ValueFilter type, or Offset (add a constant). Options: Mean Value (mean), Gaussian (gauss), Median Value (median), Offset (offset).
Use World Space Radius Units world_unitstoggleoffGive the radius in world units. Hidden when operation = offset.
Filter Voxel Radius radiusint [0..100]1Filter radius in voxels. Hidden when world_units is on } { operation = offset.
Filter Radius world_radiusfloat [0.0..]0.1Filter radius in world units. Hidden when world_units is off } { operation = offset.
Iterations iterationsint [0..1000]4Number of passes.
Offset offsetfloat1Value added per pass in Offset mode. Hidden when operation ≠ offset.

Alpha Mask

ParameterTypeDefaultDescription
Alpha Mask mask_namestring(empty)Name of the mask volume in the mask input (empty = the first one).
ParameterTypeDefaultDescription
Invert Alpha Mask invert_masktoggleoffInvert the mask: 0 becomes 1 and 1 becomes 0.
Min Mask Cutoff min_maskfloat0Mask values at or below this count as 0.
Max Mask Cutoff max_maskfloat1Mask values at or above this count as 1.

VDB to Spheres (PCG)#

PCG_VDBToSpheres · category PCG/volume · Houdini: VDB to Spheres (SOP)

Fills the inside of an SDF with non-overlapping spheres (points with pscale).

VDB to Spheres (PCG): input and result

Greedy packing inside the Isovalue contour: Point Count random candidates, repeatedly the deepest becomes a sphere; others shrink to stay outside it (or, Overlapping, only those inside it are dropped). Radii in voxels or world units, Min / Max Radius and Min / Max Spheres. Output: points with pscale and id (copy a sphere onto them; sphere primitives are not a prim type here).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Isovalue isovaluefloat0Value that defines the surface (0 for an SDF, around 0.5 for fog).
Use World Space Units world_unitstoggleoffGive band widths in world units instead of voxels.
Min Radius radius_minfloat [0.0..]1Smallest sphere radius.
Min Radius use_radius_mintoggleonUse a minimum radius.
Max Radius radius_maxfloat [0.0..]100Largest sphere radius.
Max Radius use_radius_maxtoggleoffUse a maximum radius.
Min Spheres spheres_minint [0..]1Minimum number of spheres.
Min Spheres use_spheres_mintoggleonProduce at least Min Spheres.
Max Spheres spheres_maxint [1..]50Maximum number of spheres.
Max Spheres use_spheres_maxtoggleonStop at Max Spheres.
Point Count scatterint [1..]10000Number of candidate centres.
Overlapping overlappingtoggleoffAllow spheres to overlap.
Add ID Attribute add_idtoggleonAdd an id attribute.
Add PScale Attribute add_pscaletoggleonAdd the radius as pscale.
Random Seed rand_seedint [0..]1Random seed.

VDB Topology to SDF (PCG)#

PCG_VDBTopologyToSDF · category PCG/volume · Houdini: VDB Topology to SDF (SOP)

Turns the active region of a VDB into an SDF.

VDB Topology to SDF (PCG): input and result

The active voxels as a solid: an SDF with the surface half a voxel outside the outermost active samples (exact Euclidean distance transforms), after Voxel Dilation and Closing Width (dilate then erode); Smoothing Steps of mean filtering + redistancing. Narrow band of Half-Band voxels (or world units).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Output Name output_namemenuKeep Original NameKeep the name, add a suffix, or use a custom name. Options: Keep Original Name (keep), Add Suffix (append), Custom Name (replace).
Custom Name custom_namestring(empty)Suffix or custom name. Hidden when output_name = keep.
Use World Space for Band world_spacetoggleoffGive the half band in world units.
Half-Band in Voxels half_bandint [1..100]3Half width of the narrow band in voxels. Hidden when world_space is on.
Half-Band in World half_band_worldfloat [1e-06..]1Half width of the narrow band in world units. Hidden when world_space is off.
Voxel Dilation dilationint [0..100]0Dilate the active region by this many voxels first.
Closing Width closingint [0..100]1Dilate then erode by this many voxels to fill holes and gaps.
Smoothing Steps smoothingint [0..100]0Number of smoothing passes (mean filter + redistance).

VDB Transform (PCG)#

PCG_VDBTransform · category PCG/volume · Houdini: VDB Transform (SOP)

Translates, scales and rotates volumes.

VDB Transform (PCG): input and result

Translate and (non-uniform) scale move the grid exactly; with a rotation the grid is resampled into the axis-aligned bounds of the rotated one at the same voxel size (grids here are axis aligned). Order: scale, rotate, translate about the pivot. Transform Vectors rotates / scales vector values.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Translate t_x t_y t_zfloat0, 0, 0Translation.
Rotate r_x r_y r_zfloat0, 0, 0Rotation in degrees (X, then Y, then Z).
Scale s_x s_y s_zfloat1, 1, 1Scale per axis.
Uniform Scale uniform_scalefloat1Multiplies the scale.
Pivot p_x p_y p_zfloat0, 0, 0Pivot for rotation and scale.
Invert Transformation inverttoggleoffApply the inverse transform.
Transform Vectors xform_vectorstoggleoffRotate and scale the values of vector volumes too.

VDB Vector Merge (PCG)#

PCG_VDBVectorMerge · category PCG/volume · Houdini: VDB Vector Merge (SOP), Volume Vector Join (SOP)

Merges three scalar volumes into one vector volume.

Pairs the X / Y / Z scalar grids (by base name for patterns like *.x, else in order) into vector grids on the X grid's samples; missing components are 0. Named after the X grid's base name, or Merged VDB Name (# = number). Remove Source VDBs deletes the scalars.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
X Group xgroupstring*.xPattern of the X component volumes.
Y Group ygroupstring*.yPattern of the Y component volumes.
Z Group zgroupstring*.zPattern of the Z component volumes.
Use Basename of X VDB use_basenametoggleonName the vector volume after the X volume's base name (vel.x -> vel).
Merged VDB Name merge_namestringmerged#Name when not using the base name; # becomes a number. Hidden when use_basename is on.
Remove Source VDBs remove_sourcestoggleonDelete the merged scalar volumes.

VDB Vector Split (PCG)#

PCG_VDBVectorSplit · category PCG/volume · Houdini: VDB Vector Split (SOP), Volume Vector Split (SOP)

Splits vector volumes into scalar .x / .y / .z volumes.

Each vector grid becomes scalar grids <name>.x / .y / .z; scalar grids pass through. Keep Source Volumes keeps the vector grids too.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Keep Source Volumes keep_sourcetoggleoffKeep the vector volumes as well.

VDB Visualize Tree (PCG)#

PCG_VDBVisualizeTree · category PCG/volume · Houdini: VDB Visualize Tree (SOP)

Draws the leaf / internal node layout and the active voxels of VDBs as geometry.

VDB Visualize Tree (PCG): input and result

Leaf nodes (8³ blocks holding active voxels) and internal nodes (128³ blocks) as wireframe boxes or points, active voxels as boxes or points, the grid bounding box; groups leaves / internal / voxels / bbox and Cd. Keep Original Geometry keeps the volumes.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Leaf Nodes leavesmenuWireframe BoxesHow leaf nodes (8³ blocks holding active voxels) are drawn. Options: Wireframe Boxes (boxes), Points (points), Disabled (none).
Internal Nodes internalmenuDisabledHow internal nodes (128³ blocks) are drawn. Options: Disabled (none), Wireframe Boxes (boxes), Points (points).
Active Voxels voxelsmenuDisabledHow active voxels are drawn. Options: Disabled (none), Points (points), Wireframe Boxes (boxes).
Bounding Box bboxtoggleonDraw the grid's bounding box.
Keep Original Geometry keeptoggleoffKeep the volumes in the output.

Volume Adjust Fog (PCG)#

PCG_VolumeAdjustFog · category PCG/volume · Houdini: Volume Adjust Fog (SOP)

Adjusts fog density with patterns, ramps and pre / post processing.

Volume Adjust Fog (PCG): input and result

Pre-process (overwrite with Initial Value, complement), an adjustment of Adjust Value × pattern (constant / random / noise / line / radial / bounding box, through the Remap Ramp, scaled to Range) combined by Operation, post-process (scale, add, clamp, complement), blended by Blend Amount or a blend volume.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
blend_volume (optional)GEOMETRYOptional volume used as the blend amount.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Volume Name groupstring(empty)Volumes to adjust.
Operation operationmenuAddHow the adjustment combines with the density. Options: Add (add), Set Always (set), Subtract (subtract), Multiply (multiply), Minimum (minimum), Maximum (maximum).
Adjust Value valuefloat1Adjustment value.
Pattern Type patternmenuConstantSpatial pattern of the adjustment. Options: Constant (constant), Random (random), Noise (noise), Line (line), Radial (radial), Bounding Box (bbox).
Range range_min range_maxfloat0, 1Range the pattern is mapped to.
Remap Ramp rampstring(empty)Ramp applied to the pattern (empty = linear).
Element Size element_sizefloat [1e-06..]1Noise size. Hidden when pattern ≠ noise.
Offset offset_x offset_y offset_zfloat0, 0, 0Noise offset. Hidden when pattern ≠ noise.
Seed rand_seedint [0..]0Random seed. Hidden when pattern ≠ noise pattern ≠ random.
Line Origin line_origin_x line_origin_y line_origin_zfloat0, 0, 0Start of the line pattern. Hidden when pattern ≠ line.
Line Direction line_dir_x line_dir_y line_dir_zfloat0, 1, 0Direction of the line pattern. Hidden when pattern ≠ line.
Center radial_center_x radial_center_y radial_center_zfloat0, 0, 0Centre of the radial pattern. Hidden when pattern ≠ radial.
Radius radial_radiusfloat [1e-06..]1Radius of the radial pattern. Hidden when pattern ≠ radial.

Pre-Process

ParameterTypeDefaultDescription
Overwrite Initial Value pre_overwritetoggleoffReplace the density with Initial Value first.
ParameterTypeDefaultDescription
Initial Value initial_valuefloat0Initial value. Disabled when pre_overwrite is off.
Complement Volume pre_complementtoggleoffUse 1 − density first.

Post-Process

ParameterTypeDefaultDescription
Post-Process posttoggleoffPost-process the result.
ParameterTypeDefaultDescription
Scale post_scalefloat1Multiplies the result.
Add post_addfloat0Added to the result.
Minimum clamp_minfloat0Lowest value.
Minimum post_clamp_mintoggleoffClamp below.
Maximum clamp_maxfloat1Highest value.
Maximum post_clamp_maxtoggleoffClamp above.
Complement Volume post_complementtoggleoffUse 1 − result.

Blend

ParameterTypeDefaultDescription
Blend blendmenuConstantBlend by a constant or by a volume. Options: Constant (constant), Use Volume (volume).
ParameterTypeDefaultDescription
Blend Amount blend_amountfloat [0.0..1.0]1Blend amount (0 = unchanged, 1 = adjusted). Hidden when blend ≠ constant.
Blend Volume blend_namestring(empty)Blend volume in the third input. Hidden when blend ≠ volume.

Volume Bound (PCG)#

PCG_VolumeBound · category PCG/volume · Houdini: Volume Bound (SOP)

Builds the bounding box of the voxels that meet a condition.

Volume Bound (PCG): input and result

A box around the voxels meeting the condition (≥ / > / ≤ / < / = Bounding Value), on the voxel edges (±½ voxel) and expanded by Voxel Padding (−0.5 = bound on voxel centres). No matching voxel: no box.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Region to Find regionmenuGreater or EqualWhich voxels count. Options: Greater or Equal (greaterequal), Strictly Greater (greater), Less or Equal (lessequal), Strictly Less (less), Equal (equal).
Bounding Value valuefloat0Value compared against.
Voxel Padding padding_x padding_y padding_zfloat0, 0, 0Grow the box by this many voxels.

Volume Break (PCG)#

PCG_VolumeBreak · category PCG/volume · Houdini: Volume Break (SOP)

Cuts polygons with the surface of an SDF.

Volume Break (PCG): input and result

Cuts polygons with the zero surface of the SDF in the second input (fog: its 0.5 contour), linear along edges; keeps inside, outside or both, with inside / outside primitive groups. Snapping Tolerance snaps near-zero point distances to the surface. Holes are not closed.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
volumeGEOMETRYThe SDF volume.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Volume Group volume_groupstring(empty)SDF volume in the second input.
Geometry to Keep keepmenuAll GeometryWhich side to keep. Options: All Geometry (both), Geometry Inside (inside), Geometry Outside (outside).
Snapping Tolerance snapfloat [0.0..]0Point distances smaller than this snap to the surface.
Create Groups create_groupstoggleonCreate inside / outside groups.
Inside Group inside_groupstringinsideName of the inside group. Disabled when create_groups is off.
Outside Group outside_groupstringoutsideName of the outside group. Disabled when create_groups is off.

Volume Compress (PCG)#

PCG_VolumeCompress · category PCG/volume · Houdini: Volume Compress (SOP)

Quantizes and simplifies volume values the way compressed volumes store them.

16³ tiles whose values differ by at most Constant Tolerance become constant; values are quantised to Quantization Tolerance (ordered dithering optional); Use 16bit Float rounds to half floats; a mask (second input, strictly above Mask Minimum / below Mask Maximum, invertible) zeroes the rest. Values are what a compressed Houdini volume would read back.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
mask (optional)GEOMETRYOptional volume used as a mask.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Constant Tolerance constant_tolerancefloat [0.0..]016³ tiles whose values differ by at most this become constant.
Quantization Tolerance quantization_tolerancefloat [0.0..]0Round values to multiples of this (0 = off).
Dithering dithermenuNoneDithering when quantizing. Options: None (none), Ordered (ordered).
Use 16bit Float halftoggleoffRound to 16-bit floats.

Mask

ParameterTypeDefaultDescription
Mask Group mask_groupstring(empty)Mask volume in the second input.
ParameterTypeDefaultDescription
Mask Minimum mask_minfloat0Keep voxels whose mask is above this.
Mask Minimum use_mintoggleoffUse the mask minimum.
Mask Maximum mask_maxfloat1Keep voxels whose mask is below this.
Mask Maximum use_maxtoggleoffUse the mask maximum.
Invert Mask invert_masktoggleoffInvert the mask.

Volume Convolve 3×3×3 (PCG)#

PCG_VolumeConvolve · category PCG/volume · Houdini: Volume Convolve 3×3×3 (SOP)

Convolves volumes with a 3×3×3 kernel.

27 coefficients (three z planes z−1 / z / z+1, each 3 rows y−1..y+1 of x−1..x+1, whitespace separated); Normalize Kernel divides by their sum; Add, or Add Absolute (|coefficient × voxel|).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Kernel (Z-1, Z=0, Z+1) kernelstring(see panel)27 coefficients: three planes (z−1, z, z+1), each three rows of three.
Normalize Kernel normalizetoggleonDivide by the sum of the coefficients.
Combine Operation operationmenuAddAdd, or add absolute products. Options: Add (add), Add Abs (addabs).

Volume Feather (PCG)#

PCG_VolumeFeather · category PCG/volume · Houdini: Volume Feather (SOP)

Limits how fast volume values change, growing or shrinking fog smoothly.

Volume Feather (PCG): input and result

Caps how fast values may change: High to Low v = max(v, w − rate·d) (fog grows), otherwise min(v, w + rate·d) (fog shrinks), over the 26 neighbours until stable. The rate comes from the Feather Mode (change per distance / per voxel, distance or voxels for a unit change, slope angle).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Feather Mode modemenuChange per DistanceHow the rate of change is given. Options: Change per Distance (change_per_distance), Change per Voxel (change_per_voxel), Distance for Unit Change (distance_for_unit), Voxels for Unit Change (voxels_for_unit), Slope Angle (slope_angle).
Amount amountfloat [0.0..]1The rate (meaning depends on Feather Mode).
Feather from High to Low high_to_lowtoggleonLimit decreases (fog grows); off limits increases (fog shrinks).
Override Border bordermenuUse VolumeValues beyond the grid. Options: Use Volume (use_volume), Constant (constant), Repeat (repeat), Streak (streak).
Border Value border_valuefloat0Value used with Constant. Hidden when border ≠ constant.

Volume FFT (PCG)#

PCG_VolumeFFT · category PCG/volume · Houdini: Volume FFT (SOP)

Computes the forward or inverse Fourier transform of volumes.

Volumes in (real, imaginary) pairs; a lone real volume gets a zero imaginary part (written to a new <name>_imag volume). Invert computes the inverse; Normalize makes forward then inverse the identity; Center DC shifts zero frequency to the centre; Compute 2D Slices transforms each slice along the axis.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Center DC center_dctoggleoffMove zero frequency to the centre.
Invert inverttoggleoffInverse transform.
Normalize normalizetoggleonScale so forward then inverse returns the input.
Compute 2D Slices slicestoggleoffTransform 2D slices separately.
Slice Axis axismenuZAxis the slices are taken along. Options: Z (z), Y (y), X (x). Hidden when slices is off.

Volume from Attrib (PCG)#

PCG_VolumeFromAttrib · category PCG/volume · Houdini: Volume from Attrib (SOP)

Writes a point attribute into volumes.

Volume from Attrib (PCG): input and result

Writes a point attribute (second input) into the volumes: Accumulated (trilinear splat, normalised where the total weight exceeds Threshold; Bandwidth widens the splat), or Extrapolated (nearest point within Max Extrapolation Distance / cells). Combined with the volume by Calculation with pre / post add and multiply.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
pointsGEOMETRYPoints.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Volume Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Point Group point_groupstring(empty)Points to use (empty = all).
Attribute attributestringdensityPoint attribute to write.
Attribute use_attributetoggleonUse the attribute (off: write 1).
Accumulated accumulatedtoggleonSplat each point into its eight surrounding voxels.
Extrapolated extrapolatedtoggleoffEach voxel takes the nearest point's value.
Max Extrap Cells max_cellsint [0..1000]1Extrapolation reach in voxels. Hidden when extrapolated is off.
Max Extrapolation Distance max_distfloat [0.0..]0Extrapolation reach in world units. Hidden when extrapolated is off.
Threshold thresholdfloat [0.0..]1Total weight above which the splat is normalised. Hidden when extrapolated is on.
Bandwidth bandwidthfloat [0.0..]0Widens the splat by this many voxels. Hidden when extrapolated is on.
Scale by Voxel Volume scale_by_volumetoggleoffDivide by the voxel volume.

Calculation

ParameterTypeDefaultDescription
Calculation calculationmenuCopyHow the value combines with the volume. Options: Copy (copy), Add (add), Subtract (subtract), Multiply (multiply), Divide (divide), Maximum (maximum), Minimum (minimum).
ParameterTypeDefaultDescription
Dest Pre-Add dest_addfloat0Added to the destination value before the operation.
Dest Pre-Mul dest_mulfloat1Multiplies the destination value before the operation.
Source Pre-Add src_addfloat0Added to the source value before the operation.
Source Pre-Mul src_mulfloat1Multiplies the source value before the operation.
Post-Add post_addfloat0Added to the result.
Post-Mul post_mulfloat1Multiplies the result.

Volume Merge (PCG)#

PCG_VolumeMerge · category PCG/volume · Houdini: Volume Merge (SOP)

Flattens several volumes into one base volume.

Flattens the Merge Group volumes (second input, or the first input's other volumes) into the base volume: Copy (the last), Add, Multiply, Maximum, Minimum, Average; Dest / Source pre add-multiply, post add-multiply, clamps. Clamp at Volume Boundary: B contributes 0 outside its own box.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
merge (optional)GEOMETRYOptional volumes to merge in (otherwise the other volumes of the first input).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Merge Group merge_groupstring(empty)Volumes to flatten in.
Merge Method methodmenuAddHow they combine. Options: Add (add), Copy (copy), Multiply (multiply), Max (maximum), Min (minimum), Average (average).
Clamp at Volume Boundary clamp_boundarytoggleonVolumes contribute nothing outside their own box.

Adjustments

ParameterTypeDefaultDescription
Dest Pre-Add dest_addfloat0Added to the destination value before the operation.
ParameterTypeDefaultDescription
Dest Pre-Mul dest_mulfloat1Multiplies the destination value before the operation.
Source Pre-Add src_addfloat0Added to the source value before the operation.
Source Pre-Mul src_mulfloat1Multiplies the source value before the operation.
Post-Add post_addfloat0Added to the result.
Post-Mul post_mulfloat1Multiplies the result.
Clamp Minimum clamp_minfloat0Lowest value.
Clamp Minimum use_mintoggleoffClamp below.
Clamp Maximum clamp_maxfloat1Highest value.
Clamp Maximum use_maxtoggleoffClamp above.

Volume Optical Flow (PCG)#

PCG_VolumeOpticalFlow · category PCG/volume · Houdini: Volume Optical Flow (SOP)

Estimates the displacement field between two volumes.

The displacement from each source voxel to the matching goal values (Horn–Schunck with warping, coarse to fine over Pyramid Levels scaled by Pyramid Scale, Iterations per level, displacement blurred by Blurring Window Radius, box or Gaussian; Approximation Window Radius pre-smooths the images). Outputs <source>.x / .y / .z in world units.

Inputs

InputTypeDescription
sourceGEOMETRYSource volumes.
goalGEOMETRYGoal volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Source volumes.
Goal Group goal_groupstring(empty)Goal volumes.
Tolerance tolerancefloat [0.0..]0Differences below this give no motion.
Blurring Window Radius blur_radiusint [0..20]1Blur of the displacement per iteration.
Use Gaussian Filter gaussiantoggleoffGaussian instead of box blur.
Pyramid Levels levelsint [1..8]3Pyramid levels.
Pyramid Scale pyramid_scalefloat [0.1..0.9]0.5Size ratio between levels.
Iterations iterationsint [1..100]4Iterations per level.
Approximation Window Radius approx_radiusint [0..20]2Pre-smoothing of the volumes.

Volume Patch (PCG)#

PCG_VolumePatch · category PCG/volume · Houdini: Volume Patch (SOP)

Fills a masked region of a volume seamlessly from another volume.

Fills the masked region (Mask ≥ Cutoff) of the background with the foreground's features while matching the background on the region's border (Poisson: ∇²u = ∇²foreground inside, u = background outside). Use Foreground as Laplacian: the foreground already is the Laplacian.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Background Group backgroundstringbackgroundVolume whose masked region is filled.
Foreground Group foregroundstringforegroundVolume that supplies the detail.
Mask maskstringmaskMask volume.
Cutoff for Mask cutofffloat0.5Mask values at or above this are filled.
Use Foreground as Laplacian foreground_is_laplaciantoggleoffThe foreground already is a Laplacian.
Solver Iterations iterationsint [1..]2000Solver iterations.

Volume Ramp (PCG)#

PCG_VolumeRamp · category PCG/volume · Houdini: Volume Ramp (SOP)

Remaps volume values through a scalar or color ramp.

Volume Ramp (PCG): input and result

Remaps the volumes: Source Min / Max -> 0..1 (clamped) -> the scalar ramp -> Dest Min / Max, or through a colour ramp into three volumes <name>.x / .y / .z (New Name "Cd" gives Cd.x / .y / .z).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Volume Primitive groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
New Name new_namestring(empty)New name (with a color ramp, .x .y .z are appended).
Source Range src_min src_maxfloat0, 1Input range.
Dest Range dest_min dest_maxfloat0, 1Output range.
Use Color Ramp use_colortoggleoffUse the color ramp (three output volumes).
Scalar Ramp rampstring0:0 1:1Scalar ramp. Hidden when use_color is on.
Color Ramp color_rampstring0:0,0,0 1:1,1,1Color ramp. Hidden when use_color is off.

Volume Rasterize Curve (PCG)#

PCG_VolumeRasterizeCurve · category PCG/volume · Houdini: Volume Rasterize Curve (SOP), Volume Rasterize Hair (SOP)

Turns curves into density, color or SDF volumes.

Volume Rasterize Curve (PCG): input and result

Curves as tubes of radius width / 2 × stroke_pressure (pscale when width is missing): Mask = density (smooth from 1 on the axis to 0 at the tube surface), Color = density + a vector Cd volume, SDF = union of the tubes. Fade lowers the density along the stroke, Flow Rate scales it.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Output outputmenuMaskMask (density), Color (density + Cd) or SDF. Options: Mask (mask), Color (color), SDF (sdf).
Voxel Size voxel_sizefloat [1e-06..]0.05Edge length of a voxel in world units (the spacing of the grid samples).
Density Scale density_scalefloat1Multiplies the density. Hidden when output = sdf.
Fade fadefloat [0.0..1.0]0Density falloff along the stroke. Hidden when output = sdf.
Flow Rate flow_ratefloat [0.0..]1Density strength. Hidden when output = sdf.
Name namestringdensityName of the output volume.

Volume Rasterize Particles (PCG)#

PCG_VolumeRasterizeParticles · category PCG/volume · Houdini: Volume Rasterize Particles (SOP)

Splats points into volumes with filter kernels.

Volume Rasterize Particles (PCG): input and result

Each point adds kernel(|x − p| / r) × coverage to density (Gaussian / Box / Cubic Spline), r = max(pscale × Particle Scale, Minimum Filter Size voxels); listed attributes become coverage-weighted averages. Into the first input's volumes when given (same names), else a new grid at Voxel Size.

Inputs

InputTypeDescription
pointsGEOMETRYPoints.
destination (optional)GEOMETRYOptional destination volumes; without them a new grid is made.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Particles point_groupstring(empty)Points to use (empty = all).
Filter filtermenuGaussianSplat kernel. Options: Gaussian (gaussian), Box (box), Cubic Spline (cubic).
Coverage Attribute coverage_attributestring(empty)Point attribute with the coverage (empty = 1).
Coverage Scale coverage_scalefloat1Multiplies the coverage.
Particle Scale particle_scalefloat [0.0..]1Multiplies pscale.
Minimum Filter Size min_filterfloat [0.0..]1Smallest kernel radius in voxels.
Attributes attributesstring(empty)Point attributes averaged into same-named volumes.
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).

Volume Rasterize Points (PCG)#

PCG_VolumeRasterizePoints · category PCG/volume · Houdini: VDB Rasterize Points (SOP), Volume Rasterize (SOP), Volume Rasterize Points (SOP)

Turns points into soft spheres of density in volumes.

Volume Rasterize Points (PCG): input and result

Points as spheres of pscale + Exterior Pad: density 1 inside Solid Ratio × r, falling to 0 at r (linear or smooth), × Density Scale × point density; Merge Method maximum / add; optional noise; listed attributes into same-named volumes. Into the first input's volumes or a new grid.

Inputs

InputTypeDescription
pointsGEOMETRYPoints.
destination (optional)GEOMETRYOptional destination volumes; without them a new grid is made.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Rasterization Group point_groupstring(empty)Points to use (empty = all).
Density Scale density_scalefloat1Multiplies the density.
Solid Ratio solid_ratiofloat [0.0..1.0]0Fraction of the radius at full density.
Smooth Falloff smoothtoggleonSmooth falloff instead of linear.
Exterior Pad exterior_padfloat0Added to every radius.
Scalar / Vector Attributes attributesstring(empty)Point attributes averaged into same-named volumes.
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).
Merge Method merge_methodmenuMaximumHow overlapping points combine. Options: Maximum (maximum), Add (add).

Noise

ParameterTypeDefaultDescription
Noise Gain noise_ampfloat0Noise strength (0 = none).
ParameterTypeDefaultDescription
Element Size noise_sizefloat [1e-06..]1Noise size.
Seed rand_seedint [0..]0Random seed.

Volume Reduce (PCG)#

PCG_VolumeReduce · category PCG/volume · Houdini: Volume Reduce (SOP)

Reduces each volume to one number (maximum, average, sum, ...).

One number per volume (maximum, minimum, average, sum, median at Percentile, RMS, sums and extremes of absolutes, sum of squares; active voxels only for VDBs), optionally × voxel length / area / volume; stored as a detail attribute, a prim attribute, or the volume itself becomes constant.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.
reportSTRINGJSON report (counts and other details).

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Reduction reductionmenuMaximumHow the voxels reduce to one number. Options: Maximum (maximum), Minimum (minimum), Average (average), Sum (sum), Median (median), Root Mean Square (rms), Sum of Absolute (sum_abs), Maximum Absolute (max_abs), Minimum Absolute (min_abs), Sum of Squares (sum_squares).
Percentile percentilefloat [0.0..100.0]50Percentile for Median. Hidden when reduction ≠ median.
Scale By scale_bymenuNoneMultiply the result by voxel length, area or volume. Options: None (none), By Voxel Length (length), By Voxel Area (area), By Voxel Volume (volume).
Store Results In storemenuDetail AttributeWhere the result goes. Options: Detail Attribute (detail), Primitive Attribute (prim), Volume (volume).
Attribute attributestring(empty)Attribute name (empty = the reduction's name). Hidden when store = volume.

Volume Resize (PCG)#

PCG_VolumeResize · category PCG/volume · Houdini: Volume Resize (SOP)

Changes the bounds of volumes without resampling.

Volume Resize (PCG): input and result

New bounds on the same voxel lattice (no filtering): the second input's bounds or Size / Center, Replace / Intersect / Union with the current box, Voxel Padding; new voxels repeat the edge (streak). Keep Data off: an empty volume. Limit Resolution caps each axis.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Combine Mode combinemenuReplaceReplace the bounds, or intersect / union them with the current ones. Options: Replace (replace), Intersect (intersect), Union (union).
Size size_x size_y size_zfloat [0.0..]1, 1, 1Size of the box.
Center center_x center_y center_zfloat0, 0, 0Centre of the box.
Voxel Padding padding_x padding_y padding_zfloat0, 0, 0Voxels added on each side.
Keep Data keep_datatoggleonKeep the values (off: an empty volume).
Maximum Resolution max_resint [2..65536]512Largest resolution per axis.
Limit Resolution limit_restoggleoffCap the resolution.

Volume SDF (PCG)#

PCG_VolumeSDF · category PCG/volume · Houdini: Volume SDF (SOP)

Converts any volume into an SDF of one of its iso contours.

Volume SDF (PCG): input and result

Any volume -> SDF of its Iso Surface contour (same resolution). Invert flips the sign (use it for fog so dense = inside). Use Maximum Distance clamps to ±Maximum Distance. Distances are exact to the extracted contour (Houdini uses fast marching).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Iso Surface isofloat0Contour that becomes the zero surface (0.5 for fog, 0 for SDF).
Invert inverttoggleoffFlip the sign (for fog, so dense regions are inside).
Maximum Distance max_distfloat [0.0..]1Largest distance kept.
Use Maximum Distance use_maxtoggleoffClamp distances.

Volume Slice (PCG)#

PCG_VolumeSlice · category PCG/volume · Houdini: Volume Slice (SOP)

Cuts a plane through volumes as a mesh, points or a thin volume.

Volume Slice (PCG): input and result

A plane through the volumes (XY / YZ / ZX; relative offset −1..1 or a world position + offset; snap to voxels) as a mesh or points with the volumes' values in one attribute (one component per volume), or as thin volumes. Visualize writes Cd through a ramp over the Visualization Range (several volumes -> RGB).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Method methodmenuMeshOutput as a mesh, points or thin volumes. Options: Mesh (mesh), Points (points), Volume (volume).
Plane planemenuXY PlaneSlice plane. Options: XY Plane (xy), YZ Plane (yz), ZX Plane (zx).
Relative Location relativetoggleonPosition relative to the volume (−1 .. 1).
Position position_x position_y position_zfloat0, 0, 0World position of the slice (absolute mode). Hidden when relative is on.
Offset offsetfloat0Offset of the plane.
Snap to Voxel snaptoggleoffSnap the plane to voxel samples.
Attribute attributestring(empty)Attribute name for the values. Hidden when method = volume.

Visualization

ParameterTypeDefaultDescription
Visualize visualizetoggleonColor by value. Hidden when method = volume.
ParameterTypeDefaultDescription
Visualization Range vis_min vis_maxfloat0, 1Value range of the colors. Hidden when method = volume.
Visualization Ramp rampstring(empty)Color ramp (empty = a default spectrum). Hidden when method = volume.
Keep Original Geometry keeptoggleoffKeep the incoming geometry in the output.

Volume Splice (PCG)#

PCG_VolumeSplice · category PCG/volume · Houdini: Volume Splice (SOP)

Joins volumes of the same name into one larger volume.

Same-named volumes on the same voxel lattice are joined into one volume covering them all; where they overlap the voxel comes from the volume whose centre is nearest. Delete Original Volumes.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Source Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.
Delete Original Volumes delete_originaltoggleonDelete the source volumes.

Volume Stamp (PCG)#

PCG_VolumeStamp · category PCG/volume · Houdini: Volume Stamp (SOP)

Copies volumes onto points and composites them into a destination.

Volume Stamp (PCG): input and result

The volumes of the third input (matched to the destination by name) are placed on every point of the second input (translated to P, scaled by pscale, rotated by orient) and merged into the destination (maximum / add / minimum / copy / average).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
pointsGEOMETRYPoints.
stampsGEOMETRYVolumes to stamp onto the points.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Destination groupstring(empty)Destination volumes.
Stamp Points point_groupstring(empty)Points to use (empty = all).
Merge Method merge_methodmenuMaximumHow stamps combine with the destination. Options: Maximum (maximum), Add (add), Minimum (minimum), Copy (copy), Average (average).

Volume Trail (PCG)#

PCG_VolumeTrail · category PCG/volume · Houdini: Volume Trail (SOP)

Traces streamlines from points through a velocity field.

Volume Trail (PCG): input and result

A polyline per point through the velocity of the second input (a vector volume or vel.x / .y / .z), RK2: Trail Length in seconds (time) or path length (distance), × traillen; a fixed Number of Steps or CFL-limited steps (CFL × voxel size, at most Max Steps). Visualize: Cd from the speed (Detect Range).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
velocityGEOMETRYVelocity volume(s): a vector volume or vel.x / vel.y / vel.z.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group point_groupstring(empty)Points to use (empty = all).
Volume vel_namestring(empty)Name of the velocity volume (empty = the first vector volume, or three scalar volumes vel.x / vel.y / vel.z).
Advection Method methodmenuTimeTrail length in time or in distance. Options: Time (time), Distance (distance).
Trail Length lengthfloat [0.0..]1Trail length.
CFL cflfloat [0.01..]1Step size as a fraction of the voxel size. Hidden when use_cfl is off.
Use CFL use_cfltoggleoffAdapt the step size to the velocity.
Number of Steps stepsint [1..]10Number of steps. Hidden when use_cfl is on.
Max Steps max_stepsint [1..]1000Most steps per trail. Hidden when use_cfl is off.
Keep Original Geometry keeptoggleoffKeep the incoming geometry in the output.

Visualization

ParameterTypeDefaultDescription
Visualize visualizetoggleonColor by speed.
ParameterTypeDefaultDescription
Detect Range detect_rangetoggleonFind the top speed automatically.
Maximum maximumfloat [0.0..]1Speed for the top color (or a multiplier).
Ramp rampstring(empty)Color ramp.

Volume Velocity (PCG)#

PCG_VolumeVelocity · category PCG/volume · Houdini: Volume Velocity (SOP)

Adds uniform, vortex, curl-noise and point velocities to a velocity volume.

Volume Velocity (PCG): input and result

Adds to the selected velocity volume (a vector volume, or the first three scalar ones): a uniform velocity, a vortex (centre, axis, angular velocity, radius), divergence-free curl noise (scale, swirl size, grain, offset, attenuation, turbulence octaves) and velocity extrapolated from the second input's points; optionally masked by a third-input volume (expansion, comparison, cutoff).

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.
points (optional)GEOMETRYPoints.
mask (optional)GEOMETRYOptional volume used as a mask.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Group groupstring(empty)Which volumes to process: empty for all, numbers for the n-th volume, or names (wildcards, ^ to exclude) matched against the name attribute.

Uniform

ParameterTypeDefaultDescription
Add Uniform Velocity uniformtoggleoffAdd a constant velocity.
ParameterTypeDefaultDescription
Constant Velocity constant_x constant_y constant_zfloat0, 0, 0The constant velocity.

Vortex

ParameterTypeDefaultDescription
Add Vortex vortextoggleoffAdd a vortex.
ParameterTypeDefaultDescription
Center center_x center_y center_zfloat0, 0, 0Vortex centre.
Direction direction_x direction_y direction_zfloat0, 1, 0Vortex axis.
Angular Velocity angularfloat1Speed one unit from the axis.
Vortex Radius vortex_radiusfloat [0.0..]0Limit the vortex to this radius (0 = everywhere).

Curl Noise

ParameterTypeDefaultDescription
Add Curl Noise curltoggleoffAdd curl noise.
ParameterTypeDefaultDescription
Scale curl_scalefloat1Curl noise strength.
Swirl Size swirl_sizefloat [1e-06..]1Size of the largest swirls.
Grain grainfloat [0.0..]0.5Strength of each smaller octave.
Offset curl_offset_x curl_offset_y curl_offset_zfloat0, 0, 0Noise offset.
Attenuation attenuationfloat1Contrast of the octaves.
Turbulence turbulenceint [1..10]3Number of octaves.
Seed rand_seedint [0..]0Random seed.

Points

ParameterTypeDefaultDescription
Add Point Velocity point_velocitytoggleoffAdd velocity from the second input's points.
ParameterTypeDefaultDescription
Attribute attributestringvPoint velocity attribute.
Scale point_scalefloat1Multiplies the point velocity.
Extrapolation Distance extrap_distfloat [0.0..]1Reach of each point.

Mask

ParameterTypeDefaultDescription
Apply Mask apply_masktoggleoffZero the velocity outside a mask.
ParameterTypeDefaultDescription
Mask Volumes mask_groupstring(empty)Mask volume (third input).
Expansion expansionfloat [0.0..]0Grow the mask by this distance.
Comparison comparisonmenuGreater ThanWhich mask values are kept. Options: Greater Than (greater), Less Than (less), Greater Than or Equal (greaterequal), Less Than or Equal (lessequal).
Cut Off cutofffloat0Threshold.

Volume Velocity from Curves (PCG)#

PCG_VolumeVelocityFromCurves · category PCG/volume · Houdini: Volume Velocity from Curves (SOP)

Builds a velocity volume from the tangents of nearby curves.

Volume Velocity from Curves (PCG): input and result

Each voxel averages the tangents of curve segments within the lookup radius (constant, or the distance to the N-th nearest curve × multiplier), weighted by (1 − d / R)² × an optional prim weight attribute; optionally smoothed. The grid comes from a reference volume (third input), or the curves' bounds (and the surface's, second input) at Voxel Size.

Inputs

InputTypeDescription
curvesGEOMETRYCurves.
surface (optional)GEOMETRYOptional surface geometry.
reference (optional)GEOMETRYOptional reference geometry (see the parameters for what it is used for).

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).

Curve Lookup

ParameterTypeDefaultDescription
Radius Mode radius_modemenuConstantFixed radius, or the distance to the N-th nearest curve. Options: Constant (constant), Find Minimum Number of Curves (minimum).
ParameterTypeDefaultDescription
Radius radiusfloat [1e-06..]0.5Lookup radius. Hidden when radius_mode ≠ constant.
Minimum Curves in Radius min_curvesint [1..1000]3N for the automatic radius. Hidden when radius_mode ≠ minimum.
Radius Multiplier radius_multfloat [0.0..]1Multiplies the radius.

Smoothing

ParameterTypeDefaultDescription
Smooth Velocities smoothtoggleoffSmooth the velocities.
ParameterTypeDefaultDescription
Voxel Radius voxel_radiusint [0..20]1Smoothing radius in voxels. Disabled when smooth is off.
Blur Iterations blur_itersint [0..100]1Smoothing passes. Disabled when smooth is off.

Curve Weights

ParameterTypeDefaultDescription
Use Curve Weight Attribute use_weighttoggleoffWeight curves by an attribute.
ParameterTypeDefaultDescription
Curve Weight Attribute weight_attributestring(empty)Prim attribute with the weight. Disabled when use_weight is off.
Velocity Name namestringvelName of the velocity volume.

Volume Velocity from Surface (PCG)#

PCG_VolumeVelocityFromSurface · category PCG/volume · Houdini: Volume Velocity from Surface (SOP)

Builds a velocity field inside a closed surface from a divergence attribute.

Flow inside a closed surface driven by its divergence attribute (point or prim): sources near the surface, ∇²p = divergence inside with zero flux through the surface, v = ∇p -- the flow leaves high-divergence regions for low ones. Optional collision SDF output.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Voxel Size voxel_sizefloat [1e-06..]0.1Edge length of a voxel in world units (the spacing of the grid samples).
Exterior Band ext_bandfloat [0.0..]0.2Band around the surface.
Pressure Solve Iterations iterationsint [1..]500Pressure solver iterations.
Divergence Attribute divergence_attributestringdivergencePoint or prim attribute with the divergence.
Velocity Volume namestringvelName of the velocity volume.
Output Collision Volume collisiontoggleoffAlso output the surface SDF.
Collision Volume collision_namestringcollisionName of the collision volume. Disabled when collision is off.

Volume Visualization (PCG)#

PCG_VolumeVisualization · category PCG/volume · Houdini: Volume Visualization (SOP)

Sets how the viewport draws volumes: smoke, rainbow, iso surface or invisible.

Volume Visualization (PCG): input and result

How the viewport draws the volumes: Smoke (ray-marched; density = optical thickness per unit length × Density Scale, self-shadowing × Shadow Scale, Shadow Color), Rainbow, Iso Surface (at Iso Value, closed at the grid boundary) or Invisible. Density / Diffuse / Emission fields by name; a scalar diffuse field goes through the ramp (clamped / periodic), a vector one is RGB; Minimum / Maximum remap the fields. Writes volvis_* detail attributes; the geometry is unchanged.

Inputs

InputTypeDescription
geoGEOMETRYGeometry containing the volumes.

Outputs

OutputTypeDescription
geoGEOMETRYThe result.

Parameters

ParameterTypeDefaultDescription
Visualization Mode modemenuSmokeHow the volumes are drawn. Options: Smoke (smoke), Rainbow (rainbow), Iso Surface (iso), Invisible (invisible).
Range range_min range_maxfloat0, 1Values in this range map to 0..1 (density and scalar fields).
Density Scale density_scalefloat [0.0..]1Multiplies the density (opacity). Hidden when mode = iso } { mode = invisible.
Shadow Scale shadow_scalefloat [0.0..]1Multiplies the density for self-shadowing. Hidden when mode = iso } { mode = invisible.

Smoke

ParameterTypeDefaultDescription
Density Field density_fieldstring(empty)Volumes that are drawn (empty = all scalar volumes).
ParameterTypeDefaultDescription
Diffuse Field diffuse_fieldstring(empty)Volume(s) used as color (one scalar through the ramp, three scalars or a vector as RGB).
Exposed Color color_r color_g color_bfloat [0.0..1.0]1, 1, 1Color of lit smoke.
Shadow Color shadow_color_r shadow_color_g shadow_color_bfloat [0.0..1.0]0, 0, 0Color of the shadows (its complement scales the shadowing per channel).
Diffuse Ramp ramp_modemenuNo RampHow a scalar diffuse field maps to color. Options: No Ramp (none), Clamped Ramp (clamp), Periodic Ramp (periodic).
Diffuse Color Ramp rampstring(empty)Color ramp for the diffuse field. Hidden when ramp_mode = none.

Emission

ParameterTypeDefaultDescription
Emission Field emit_fieldstring(empty)Volume used as emission.
ParameterTypeDefaultDescription
Emission Scale emit_scalefloat [0.0..]0Emission strength.
Emission Color emit_color_r emit_color_g emit_color_bfloat [0.0..1.0]1, 1, 1Emission color.

Iso Surface

ParameterTypeDefaultDescription
Iso Value isofloat0Value of the iso surface in Iso Surface mode.

Viewport Quality

ParameterTypeDefaultDescription
Max Vis Res max_resint [8..512]128Most voxels per axis sent to the viewport.