On this page |
The Whitewater shelf tool on the Particle Fluids tab 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.
Forces ¶
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.
Whitewater Lifecycle ¶
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.
Note
Ignoring other factors, Lifespan is the statistical average for lifetime of whitewater particles.
Repellants ¶
In addition to storing the whitewater particles, a
Whitewater Object also contains a Repellants
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 justborn
.
The manner in which repellants affect whitewater and other repellants is largely controlled by their various point attributes, as outlined below.
action
Controls how strongly the repellant is currently pushing whitewater
particles; acts as a multiplier for the repellant’s strength (magnitude
).
magnitude
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
temporary modifier.
noise
Governs the repellant’s shape, value of 0 being perfectly circular and 1 being maximally “noisy”.
phase
Repellants with the same noise
attribute may still have different shapes,
depending on the value of their phase
.
pulse
Holds rate of change of the phase
attribute. As the phase
attribute
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.
radius
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
the age
attribute, which holds the elapsed time since the repellant’s
creation. In this case, repellants are destroyed once their age
exceeds their
life
.
Notes ¶
-
Values of repellant properties can be visualized by enabling the appropriate settings on the Whitewater Object node.
-
Repellants also have a
crampedness
attribute, whose value is a measure of how tightly repellants are packed. This attribute is used by the solver for reseeding purposes. Range ofcrampedness
values 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.
-
On the
wavetank
node, lower the Particle Separation value to0.10
or0.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.
Note
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.Note
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.