Image Processing Reference
In-Depth Information
Video
Photo
Noise
fluid profile
image processing
parameters
blend parameters
user
interaction
Display
Background
Texture
Previous
Texture
Intermediate
Texture
Output
Texture
blend
process
distort
Distorted
Texture
fluid shader
blending shader
imaging shader
Fig. 13.3 Schematic for the main functionality of the Fluid Automata system. The output
texture after one timestep becomes the input for the next timestep.
Unlike Conway's Game of Life and other early CA in which each cell contained
only binary information, Fluid Automata's 8-bit CA system contains 2 8 ·2 8 states
per cell: 256 values for the magnitude of a fluid vector and 256 states used to de-
scribe its orientation. Retaining the discretization and simplicity central to CA sys-
tems makes it possible to create a complex system that is linear and replicable and
that effectively simulates the movement of fluid. Unlike the majority of commonly-
implemented fluid simulations which utilize the non-linear Navier-Stokes equations,
the Fluid Automata algorithm is always stable at any length of timestep. That is, the
system is inherently non-realistic since it lacks a mass conservation condition and
because the fluid is compressible. Although the system is not physically accurate, it
has the advantages of being easy to modify in real-time and relatively straightfor-
ward to implement, leading to its incorporation in a range of projects. It distributes
a flow of energy throughout the system as follows:
1. The screen is divided into a grid of cells.
2. New energy is added into the grid by user interaction.
3. The energy at each cell is split into three streams, a forward stream and a left and
a right stream.
4. In each of the defined directions for each stream defined in step 3, the energy of
each cell is moved into the neighboring cell via the following process:
a. The cell is displaced along the vector describing the energy stream.
b. For each neighboring cell the displaced cell intersects with, create a “partial”
vector by scaling the original vector with the amount of intersection.
c. This partial is added to the cell it intersects with.
5. When this process has been completed for the entire grid, the partials associated
with each cell are combined, creating a new vector that replaces the current vector
in the cell.
6. Energy is removed from the system by scaling the energy in each cell by a damp-
ening factor.
7. Steps 2 through 6 are iterated at each timestep until there is no energy left in the
system.
 
Search WWH ::




Custom Search