|On this page|
See volumes for an explanation of standard volumes and OpenVDB volumes.
This node has different functions based on the value of the Operation parameter.
Move geometry points according to a VDB velocity field.
Move points onto a surface using a VDB field storing the nearest surface point at each voxel.
Move geometry points according to a VDB velocity field and stick them to a surface using a "nearest point" field (combine the first two operations). This lets you advect points through a velocity field while keeping them stuck to a surface.
traillen float attribute can be used to control how far particles
move on a per-particle basis.
This node is not a feedback loop. It moves the points it finds in the input geometry. It cannot modify the point locations over time. (That is, if you hook this node up to do advection, and press play, the points will not animate.)
To set up a feedback loop, where the advection at each frame affects the advected point positions from the previous frame, do one of the following:
Do the advection inside a SOP Solver.
Set Substeps to
$Fand the Timestep to
$TThis will cause the node to recalculate, at every frame, the path of every particle through every previous frame to get the current one. This is obviously not very practical, however the calculations are fast so it may be useful as a quick "hack" to animate the advection for small numbers of particles.
A subset of points in the first input to move using the velocity field.
The name of a VDB primitive in the second input to use as the velocity field.
This must be a vector-valued VDB primitive. You can use the VDB Vector Merge SOP to turn a
vel.[xyz] triple into a single primitive.
See specifying volumes.
Closest Point VDB
The name of a VDB primitive in the third input to use for the closest point values. See specifying volumes.
How to use the velocity field to move the points.
Move each point along the velocity field.
Move each point to the nearest surface point using the closest point field
Move the along the velocity field, and then project using the closest point field. This forces the particles to remain on a surface.
Algorithm to use to move the points. Later options in the list are slower but better follow the velocity field.
Number of times to try projecting to the nearest point on the surface. Projecting might not move exactly to the surface on the first try. More iterations are slower but give more accurate projection.
Number of seconds of movement to apply to the input points.
The default is
1/$FPS (one frame’s worth of time).
You can use negative values to move the points backwards through the velocity field.
If the attribute
traillen is pressent, it is multiplied by this timestep allowing per-particle variation in trail length.
How many times to repeat the advection step. This will produce a more accurate motion, especially if large timesteps or high velocities are present.
Generate polylines instead of moving points. This is useful for visualizing the effect of the node. It may also be useful for special effects (see also the Trail SOP).
Points to Advect
The points to advect are copied from this input.
The VDB that stores the velocity at each location.
Closest Point VDB
The VDB that stores the closest point to each location.