Graphics Reference
In-Depth Information
These formulas are in of themselves fairly useful if you want velocity vectors
at arbitrary points, say to aid in simulating the motion of a small solid in
the water.
However we'll go one step further. Imagine tracking a blob of water
starting at some initial position. The velocity field implied by a single
wave, evaluated at that fixed point in space, is just a periodic sinusoid in
time. As long as these velocities are small enough, the particle can't stray
too far, so to a good approximation the velocity of the particle itself will
be that periodic sinusoid. This means its position, the integral of velocity,
will also be a periodic sinusoid: the particle will follow an elliptic orbit
round and round as waves pass by. Experimental observation confirms this
is a fairly accurate description of the motion; it's not perfect—there is a
very small net movement in the direction of the wave propagation, termed
Stokes drift —but it's pretty good.
Solving for the motion of a blob of water starting at position x 0 ,from
the simplified equation dx/dt = u ( x 0 ,t ), gives this general solution for the
displacement from x 0 :
Δ x =
i,j
2 πA ij i
kL
sin( k
ω k t + θ ij ) e ky 0 ,
·
( x 0 ,z 0 )
Δ y =
i,j
A ij cos( k
ω k t + θ ij ) e ky 0 ,
·
( x 0 ,z 0 )
(13.17)
Δ z =
i,j
2 πA ij j
kL
sin( k
ω k t + θ ij ) e ky 0 .
·
( x 0 ,z 0 )
This displacement field can be evaluated anywhere for y 0
0togivethe
location where a particle that's moving with the water should be displaced
to at any given time. For example, for a solid floating on the surface of the
water you can get its position at any time by plugging in y 0 =0andits
“resting” horizontal x 0 and z 0 coordinates. Objects suspended underneath
the surface are the same, just with an exponential reduction of the motion
by e ky 0 for each component. (Note that the components with large k
will be nearly zero deep enough down, so they can be dropped for more
ecient evaluation—as you go deeper, only the large wavelength, small
wave number k , waves have an effect.)
In fact this displacement field also tells us how to get a more accurate
free surface: we use it to deform the y = 0 plane. The technical term
for this, when applied to enrich a single Fourier component, is a Gerstner
wave , first introduced to graphics by Fournier and Reeves [Fournier and
Reeves 86].
Our earlier height field solution only included the vertical
Search WWH ::




Custom Search