Houdini 12 Nodes Surface nodes

Combines the scalar fields of volume primitives.

The Volume Mix operation manipulates the scalar data associated with volume primitives. For each pair of volume primitives in the source group and the mix group, the given calculation is performed and the results stored in the source group’s primitive. Note that the volumes do not need to have the same orientation or resolution, the second volume will be sampled at the orientation and resolution of the first volume.

The copy mode allows you to resample a volume into a different resolution or orientation.

## Parameters

Source Group

The volume primitives to be used from the first input.

Mix Group

The volume primitives to merge in from the second input. If there is no second input, this group will be found from the first input.

Mix Method

Each voxel of each volume primitive in the source group will be mixed with the corresponding voxel of the corresponding volume primitive of the mix group according to this mix method. A refers to the first input’s value, B refers to the second input’s value. If there is no second input, B will be found from the corresponding volume of the first input.

 Copy result = B Add result = A + B Subtract result = A - B Diff result = abs(A - B) Multiply result = A * B Divide result = A / B Invert result = -A Max result = max(A, B) Min result = min(A, B) Clamp result = clamp(A, rangemin, rangemax) Blend result = A (1-blend) + B blend User result = Value Expression
Range

Defines the range to which the volume’s voxel values will be clamped when the mix method is set to Clamp.

Blend

Defines the mixing of the two volumes in Blend mode. 0 will use the first volume, 1 will use the second volume.

Value

Each voxel each volume primitive of the source group will be directly assigned this value if the mix method is set to User. The expression can use local variables to allow for arbitrary expressions.

Tip

It can be considerably faster to use a Volume Vop to manipulate the volume than an expression.

The `A` in the calculation is set to `A' = A * m + a`, where `m` is the Dest Pre-Mul and a the Dest Pre-Add.

This does not support per-voxel local variables.

The `B` in the calculation is set to `B' = B * m + a`, where `m` is the Source Pre-Mul and a the Source Pre-Add.

This does not support per-voxel local variables.

The `result` that the destination field is set to is modified by `result' = result * m + a,` where `m` is the Post-Mul and a is the Post-Add.

This does not support per-voxel local variables.

Clamp Minimum, Maximum

The final result is then clamped optionally to these ranges.

This does not support per-voxel local variables.

## Local variables

 X, Y, Z Position in space of the voxel being processed. IX, IY, IZ Index of the voxel being processed. V Value of the volume from the first input. V2 Value of the volume from the second input. BBX, BBY, BBZ Relative location of the voxel in terms of the first input. BBX2, BBY2, BBZ2 Relative location of the voxel in terms of the second input.

## Examples that use this node

Example forExample name

`.../examples/nodes/dop/fieldforce/FieldForceSmoke.otl`

`.../examples/nodes/dop/fieldforce/fieldforce.otl`

`.../examples/nodes/dop/flipsolver/DensityViscosity.otl`

`.../examples/nodes/dop/flipsolver/VariableViscosity.otl`

`.../examples/nodes/dop/fluidobject/FillGlass.otl`

`.../examples/nodes/dop/fluidobject/PaintedGrog.otl`

`.../examples/nodes/dop/gasembedfluid/CombinedSmoke.otl`

`.../examples/nodes/dop/gasupres/UpresRetime.otl`

`.../examples/nodes/dop/rbdpinconstraint/Chainlinks.otl`

`.../examples/nodes/dop/rbdstate/InheritVelocity.otl`

`.../examples/nodes/dop/referenceframeforce/ReferenceFrameForce.otl`

`.../examples/nodes/dop/ripplesolver/RippleGrid.otl`

`.../examples/nodes/dop/smokeobject/OpenCL.otl`

`.../examples/nodes/dop/smokeobject/TwoColourFire.otl`

`.../examples/nodes/dop/voronoifracturesolver/FractureExamples.otl`

`.../examples/nodes/sop/clusterpoints/AnimatedSourcePoints.otl`

`.../examples/nodes/sop/dopimport/LowHigh.otl`

`.../examples/nodes/sop/dopimportrecords/dopimportrecordsexample.otl`

`.../examples/nodes/sop/fluidsource/TorusVolume.otl`

`.../examples/nodes/sop/gluecluster/glueclusterexample.otl`

`.../examples/nodes/sop/timeshift/PlateBreak.otl`

`.../examples/nodes/sop/volumereduce/barycenter.otl`

`.../examples/nodes/sop/volumesurface/volumesurface_hierarchy.otl`
`.../examples/nodes/sop/volumevop/ImportVolumes.otl`