On this page | |
Since | 21.0 |
Overview ¶
The Pyro Axis Force node exerts a force around a specified line segment. The forces can be applied to a vector VDB representing velocities, and can cause the velocities to do the following:
-
Move toward or away from the axis (suction component)
-
Travel along the line segment (axis component)
-
Spin around the axis (orbit component)
Note
Axis and orbit forces directly modify the velocity vectors, but the suction force works on the output div
Float VDB. This relies on wiring the div
to the Pyro Block End COP’s divergence
input.
Axis and orbit forces are applied in a cylindrical region around the line segment. Within this tube, a speed is prescribed for each force, along with a strength value. The Pyro Axis Force COP will try to drive the velocity field toward the goal vectors based on the speed, and the strength determines how hard the force will work to reach this goal.
Parameters ¶
Start
Starting point of the line segment. This line segment is the axis for the force.
End
End point of the line segment. This line segment is the axis for the force.
Influence Distance
The forces are applied in a cylindrical region around the line segment. This parameter controls the radius of this cylinder. Increasing this value will extend the active region of this force.
Global Strength
A global strength multiplier for the force. Suction, axis, and orbit components are affected by this strength. Increase this parameter to uniformly amplify the effect of this node.
Operation
Controls how the axis and orbit forces are applied to the velocity field.
Directional Drag splits the incoming velocity vector into components that point in the axial and orbital directions, then modifies these parts independently. If one of the forces has 0
strength, this mode leaves the respective velocity component unchanged (this includes part of the velocity vectors that point at the line segment).
Full Drag first assembles the full goal velocity, then drives the incoming vectors toward the goal. When set to Force, the goal velocities instead act like an additive force. That is, the goal velocities are multiplied by the applicable strength, then scaled by the timestep, and added to the destination field.
Note
Directional Drag and Full Drag define a goal velocity field in the active cylinder, then drive the incoming velocity values toward this goal. These modes are stable. They will not overshoot the goal. Force mode continuously adds to the velocity field and may give rise to very high speeds if left unchecked.
Scale by Timestep
Scale the effect of the force by the timestep. This ensures that the amount of force stays the same when substepping occurs, but if the instantaneous value needs to be computed, it can be turned off.
Suction Force ¶
Strength
Strength of the suction force that pulls toward the line segment. Positive values pull toward the axis, whereas negative values will blow outwards (away from the axis).
Set this parameter to 0
to turn off the suction force.
Note
Suction force does not directly touch the v
output, but is instead applied to the div
output. This relies on this output being wired to the divergence
input of the Pyro Block End COP.
Pump Thickness
Specifies thickness of the tube around the line where divergence values are set. This value should be larger than the voxel size of the simulation fields to avoid aliasing. Increasing this parameter will also amplify strength of the suction force.
Suction Along Axis
Allows you to vary the amount of induced divergence (or strength of suction) along the line segment. The left and right sides of this ramp correspond to the Start Point and End Point, and the vertical axis spans from 0
to the Strength value.
Axis Force ¶
Speed ¶
Speed Range
The range of goal speeds in the direction of the line segment. Negative speed signals that the goal velocity points in the opposite direction (from the End Point toward the Start Point).
Speed Along Axis
Allows you to vary the goal axis speed along the line segment. The left and right sides of this ramp correspond to Start Point and End Point, and the vertical axis covers the given Speed Range.
Strength ¶
Strength
Strength of the axis force that generates motion in the direction of the line segment. When applied as drag, larger values of this parameter will align the incoming velocities more closely with the goal. When applied as force, increasing strength will increase the magnitude of the additive force.
Set this parameter to 0
to turn off the axis force.
Note
The final strength of the force at any point in the cylinder is the product of Strength with the two modifiers from the Strength Along Axis and Strength Away from Axis ramps.
Strength Along Axis
Allows you to vary the strength of the axis force along the line segment. The left and right sides of this ramp correspond to Start Point and End Point, respectively. The vertical axis spans 0
to 1
, and the evaluated value of this ramp acts as a multiplier for Strength.
Strength Away from Axis
Allows you to vary the strength of the axis force based on the distance to the line segment. The left side of this ramp represents the center of the active cylinder (distance of 0
to the axis), while the right side corresponds to its outer edge (at a separation of Influence Distance). The vertical axis spans 0
to 1
, and the evaluated value of this ramp acts as a multiplier for Strength.
Orbit ¶
Speed ¶
Speed Range
The range of goal speeds around the line segment. With the axis directed from Start Point to End Point, positive speeds correspond to right-handed rotation around the line. Negative speeds generate rotation in the opposite direction.
Speed Falloff
Controls the relationship between orbital speed and orbital distance. When set to Constant, the speed is independent of distance. Orbital speed is directly proportional to distance in Scale by Distance mode (similar to a rotating rigid body). When Scale by Inverse Distance is selected, orbits are fastest at the line segment and gradually become slower as they get further away from the center of the active cylinder.
Speed Along Axis
Allows you to vary the goal orbit speed along the line segment. The left and right sides of this ramp correspond to Start Point and End Point, and this ramp’s vertical axis covers the given Speed Range.
Strength ¶
Strength
Strength of the orbit force that generates rotational motion around the line segment. When applied as drag, larger values of this parameter will align the incoming velocities more closely with the goal. When applied as force, increasing strength will increase the magnitude of the additive force.
Set this parameter to 0
to turn off the orbit force.
Note
The final strength of the force at any point in the cylinder is the product of Strength with the two modifiers from the Strength Along Axis and Strength Away from Axis ramps.
Strength Along Axis
Allows you to vary the strength of the orbit force along the line segment. The left and right sides of this ramp correspond to Start Point and End Point, respectively. The vertical axis spans 0
to 1
, and the evaluated value of this ramp acts as a multiplier for Strength.
Strength Away from Axis
Allows you to vary the strength of the orbit force based on the distance to the line segment. The left side of this ramp represents the center of the active cylinder (distance of 0
to the axis), while the right side corresponds to its outer edge (at a separation of Influence Distance).
The vertical axis spans 0
to 1
, and the evaluated value of this ramp acts as a multiplier for Strength.
Mask ¶
Mask Range
Values in the Mask Field are remapped from this range to 0-1
.
Remap Mask
When this checkbox is turned on, the remapped mask values (from Mask Range) are additionally passed through the Mask Ramp.
Mask Ramp
This ramp’s vertical axis is the strength modifier and the horizontal axis is the remapped mask value.
Inputs ¶
v
A Vector VDB providing the initial velocities.
mask
A Float VDB controlling where the force will be applied.
Outputs ¶
v
A Vector VDB with the updated velocities from the axis force.
div
A Float VDB providing what the goal divergence of each voxel should be to drive the suction force. This should be wired to the divergence
of the Pyro Block End COP.
See also |