|On this page|
The Whitewater tool on the Particle Fluids shelf creates spray, foam, and churn based on an underlying FLIP fluid simulation. It sets up the source and solver for a whitewater simulation. Whitewater is created from a source FLIP simulation based on several criteria including fluid acceleration, curvature, and vorticity. Whitewater enhances the look of fluid animation with secondary effects such as spray, foam, and bubbles.
Do not try to set up a whitewater simulation from scratch.
For more information on how the tool sets up the network, see the Whitewater shelf help.
Dynamics of the whitewater particles are governed by several mechanisms.
Acceleration due to Gravity is applied uniformly to all particles.
With default settings, Buoyancy pushes particles in the opposite direction of Gravity and is responsible for surfacing of bubbles.
The particles move with the underlying liquid’s flow as they are passively advected through its velocity field.
Special repellant points on the surface push away nearby whitewater particles, breaking up the foam structure and giving rise to a cellular pattern.
The liquid’s surface tension and adhesion result in foam "sticking" to the surface, not allowing it to submerge or peel away. These effects can be simulated by enabling depth control.
Density control is responsible for maintaining local whitewater distribution, preventing particles from clustering too closely. Additionally, this mechanism gives rise to whitewater cohesion, as it fights dispersion.
The Whitewater Solver allows for fine control of these forces at different depths. For instance, it may be desirable to strictly control density at the surface, but less so for airborne whitewater that should easily separate; this effect can be achieved by attenuating the strength of density control.
The solver takes care of birthing new whitewater particles, using the emission volume created by the Whitewater Source node to determine the amount. When Limit Emission is enabled, the present distribution of whitewater particles is also considered, avoiding over-emission.
Aging and killing of particles is likewise handled by the solver. As simulation progresses, whitewater ages in an ordinary manner; however, particles do not have a prescribed lifetime. Instead, a death chance is dynamically calculated for each particle, taking into account its current condition. The following factors are considered when determining a particle’s dying probability:
age - Older particles are more likely to be killed.
depth - As depth varies, so does whitewater’s chance of dying, per values of the Aging Rates.
density - When erosion is enabled, whitewater density in a particle’s neighborhood is also used to augment its death chance.
Advanced users can further manipulate particle lives by accessing their
deathchance point attributes.
Ignoring other factors, Lifespan is the statistical average for lifetime of whitewater particles.
In addition to storing the whitewater particles, a
Whitewater Object also contains a
geometry holding the system’s repellant points. These points apply a repulsive
force on the nearby whitewater, breaking up its structure and creating "bald"
patches that form a larger cellular pattern. Aside from calculating and applying
these forces, the solver also advects the repellants to ensure that the foam
pattern moves with the liquid and tries to control their distribution by removing points from denser regions and reseeding points in scarce regions. On their birth frame, repellants are organizes into a group called
The manner in which repellants affect whitewater and other repellants is largely controlled by their various point attributes, as outlined below.
Controls how strongly the repellant is currently pushing whitewater
particles; acts as a multiplier for the repellant’s strength (
Contains the repellant’s strength. In contrast to
action, this attribute
is meant to be a permanent (or long-term) property, as opposed to a
Governs the repellant’s shape, value of 0 being perfectly circular and 1 being maximally "noisy".
Repellants with the same
noise attribute may still have different shapes,
depending on the value of their
Holds rate of change of the
phase attribute. As the
changes, so does the repellant’s shape. Value of 0 indicates that the shape
is static, while values further away from 0 cause the repellant to
continuously evolve its shape.
Controls the repellant’s size.
By default, repellants are ageless and do not expire. However, if Life Range on the
Whitewater Solver is enabled, they will be given a random lifespan at birth (stored in the
life point attribute) and will also contain
age attribute, which holds the elapsed time since the repellant’s
creation. In this case, repellants are destroyed once their
age exceeds their
Image courtesy of Igor Zanic.
Values of repellant properties can be visualized by enabling the appropriate settings on the Whitewater Object node.
Repellants also have a
crampednessattribute, whose value is a measure of how tightly repellants are packed. This attribute is used by the solver for reseeding purposes. Range of
crampednessvalues is 0-1.
Unless Density Threshold is enabled, repellants are not affected by whitewater; thus, it is possible to examine their evolution throughout a simulation by temporarily disabling whitewater emission.
How to animate a wave tank with whitewater
This tutorial explains how to get a nice looking wave tank in the viewport and flipbook. This is useful to see how the waves will move and where whitewater will be created.
Press D to open the Display Options dialog.
On the Geometry tab, turn off the Display Sprites checkbox.
Create a Wave Tank using the tool on the Oceans shelf tab.
wavetanknode, lower the Particle Separation value to
0.07. This will create a better looking wave tank.
Navigate back to the OBJ level and click the Whitewater tool on the Oceans shelf tab. Select the tank when prompted to add whitewater to the existing network.
In the Limits tab of the Whitewater Solver, disable Closed Boundaries to prevent particles from bouncing off simulation bounds.
This parameter is linked to fluid object. Delete the channel first using ⌃ Ctrl + ⇧ Shift + , then turn it off.
In the Foam tab of Whitewater Solver, change the repellants' Feature Size Range to
0.1-0.2. This will yield smaller features in the generated cellular foam pattern.
You can turn on Repellants under the Whitewater Object to get a better visualization of the repellant particles that give rise to the cellular pattern.
Play the scene to perform the liquid and whitewater simulations.