Simulating Smokes
Download
Report
Transcript Simulating Smokes
Visual Simulation
of Smoke
Based on Jos Stam’s
SIGGRAPH’01 presentation
Represented by
Justin Hensley
Smoke in computer
graphics
Ideally
Looks good
Fast simulation
Looks good?
Needs to look plausible
Doesn’t need to be exactly correct
Stam’01 model
Improve Stam’99 (Stable Fluids)
Handle moving boundaries
Reduce numerical dissipation
Add high quality volume rendering
Method still fast but looks more
“smoke-like”
Incompressible Euler
Equations
self-advection
Fluid velocity:
u= <Vu , Vv , Vw >
forces
u 0
incompressible
(Navier-Stokes without viscosity)
Additional Equations
density
temperature
buoyancy
force
(u )
t
T
(u )T
t
f z (T Tamb ) z
Algorithm
add forces
t=0
self-advect
project
t = t + dt
Self-Advection
t
t+dt
Semi-Lagrangian solver (Courant, Issacson & Rees 1952)
Semi-What?
What’s the semi in SemiLagrangian?
Lagrangian method
Both
mesh and flow moves
Semi-Lagrangian method
Mesh
is held constant
Flow is advected
Allows for easy interpolation of
values when bact tracing.
Self-Advection
t
t+dt
Semi-Lagrangian solver (Courant, Issacson & Rees 1952)
Self-Advection
t
For each u-component…
t+dt
Self-Advection
t
For each u-component…
t+dt
Self-Advection
t
Set interpolated value in new grid
t+dt
Self-Advection
Repeat for all u-nodes
Self-Advection
Repeat for all v-nodes
Self-Advection
Vmax
>
Vmax
Advected velocity field
Moving objects
Moving objects
Moving objects
Moving objects
Moving objects
Moving objects
Moving objects
Numerical Dissipation
‘Stable Fluids’ method dampens
the flow
Typical with semi- Lagrangian
methods
Improve using
“Vorticity Confinement” force
monotonic cubic interpolation
Vorticity Confinement
Basic idea:
Add energy lost as an external
force
Use “Vorticity Confinement” force
invented by John Steinhoff ~10
years ago
Vorticity Confinement
: vorticity
u
Vorticity Confinement
Vorticity location
vector :
Normalized vorticity
Location vector : N
Vorticity Confinement
Amount of detail
added back : (> 0)
Spatial discretization:
h
Results
Results