259 Final Project
Physically Based Modeling and Animation of Fire using Graphics Hardware
Proposal
- Title
- Physically Based Modeling and Animation of Fire using
Graphics Hardware
- Description
- The purpose of this project is to implement the high quality
and physically based modeling and animation of fire by Nguyen[Nguyen, 2002] in such a way as to make it more
realtime applicable. This will be accomplished by using the
features of graphics hardware.
- Background and Motivation
- Nguyen's[Nguyen, 2002] work produces
very nice physically based fire. The target of his work is an
animation model which fits inside his photorealistic rendering
framework, that is not targeting real-time application. In
conjunction with Fedkiw in[Fedkiw, 2001],
and [Fedkiw, 2002], they investigate both
real-time and non-real-time methods, for both smoke and fire.
Using this as background, and additionally building on the grid
based graphics hardware work of [Harris,
2002], I intent to produce a real-time implementation of the
photorealistic work which is Nguyen's primary focus in [Nguyen, 2002]
These images are from the smoke and fire papers by Jensen:
- Expected Contributions and Accomplishments
-
- Minimal: a real-time fire renderer, using graphics
hardware
- Possibly: all of Nguyen's[Nguyen,
2002] model
- Possibly: some improvement over that model, but this may
take beyond the time for this course.
Update
Ok, I set out to first implement the basics of
Nguyen's [Nguyen, 2002] model in software.
It's now looking to me like this alone is a significant semester
project. The model consists of a number of significant elements:
- A temperature/phase function: as the temperature increases,
the state chnages from solid fuel to gaseous products of burned
fire (not all products may be gas, visible smoke is solid
product of the ignition of the fuel. They add this using the
smoke work of Fedkiw [Fedkiw, 2001], but it
is not the focus of their model, nor of my work with it. So,
I'm just using curve such as theirs:

- Classic diffusion style 1st order ODE's for temperature and
pressure diffusion: This is actually turning out to be a little
tricky in the graphics hardware implementation, different
equations, variables, and coefficients are used for the
different states, so one equation is applied in the fuel regions
and another is applied in the burned gas regions.
- Iso-surface evolution: There is an iso-surface that
differentiates between solid fuel and ignited gas, corresponding
to when the state change occurs. Tracking this isosurface is
essential because different equations are applied in the two
states. I''m planning on implementing something along the lines
of the work that Lefohn and Whitaker did in [Lefohn, 2002] for isosurface evolution in
volumes using graphics hardware. I have not attempted this yet,
and it appears it alone will be a very significant work.
- Expansion: The local density (both of fuel and of burned
gas) must be tracked. The state conversion along the isosurface
involves an expansion. The updates in density and pressure and
temperature (and also the levelset evolution) depend on the
local densities - traditional diffusion style. This expansion
behavior is a significant contributor to the "randomness" in the
flame paths and motions, and appears to be a factor in
convincing fire.
- Color: They use a function of the temperature to determine
color. I have not yet figured out how to do this in the
graphics hardware.
- Inter-relationships: The temperature affects the density
affects the pressure affects the iso-surface affects the state
changes affects the expansions effects the temperature affects
the ....
- Rendering: They use a photon-mapping with participating
medium model. This will not work well for real-time graphics.
As it is a volume based model, I'm looking into various hardware
volume rendering techniques. This has not been done yet.
In the face of much more to do than I had anticipated, it has
been hard to find the best place to start. I have decided to
begin by implementing their work in software, then producing
something on hardware. This enables me to prototype and
experiement with their solution better and faster. It is also
very hard currently to debug hardware shader programs. I am
nearing completion of the software implementation and have begun
drafting plans for the transition to hardware.
I am also considering borrowing directly from the work of Wei
[Wei, to appear] and Goodnight [Goodnight, 2003], as both of these use
graphics hardware to solve grid based ODEs (Lattice Bolzmann
Computations and Boundary Value problems via multigrids,
respectively). The multigrid approach particularly is
interesting, as it may provide for some significant improvements
to the basic fire model. I'm excited to possibly branch into this
one, but I have much left to do, possibly too much
already.
References
- Fedkiw, Ronald, SIGGRAPH 2002 Course
Notes 9: Simulating Nature: Realistic and Interactive
Techniques
- Goodnight, Nolan, and Gregory Lewis and David Luebke and
Kevein Skadron, A Multigrid Solver for
Boundary Value Problems Using Programmable Graphics
Hardware, University of Virginia Technical Report
CS-2003-03
- Harris, Mark J. and Greg Coombe and Thorsten Scheuermann and
Anselmo Lastra, Phsically-Based
Visual Simulation on Graphics Hardware, Proceedings
2002 SIGGRAPH/Eurographics Workshop on Graphics Hardware,
2002.
- Lefohn, Aaron and Ross Whitaker, A
GPU-Based Three-Dimensional Level Set Solver with Curvature
Flow, University of Utah Technical Report
UUCS-02-017
- Fedkiw, Ronald and Jos Stam and Henrik Wann Jensen,
Visual Simulation of Smoke, SIGGRAPH 2001
Proceedings
- Li, Wei, and Xiaoming Wei and Arie Kaufman, Implementing Lattice Bolzmann Computation on
Graphics Hardware to appear in The Visual Computer
- Nguyen, Duc Quang and Ronald Fedkiw and Henrik Wann Jensen,
Physically
Based Modeling and Animation of Fire, SIGGRAPH 2002
Proceedings.
E. Scott Larsen
Last modified: Mon Apr 7 12:17:36 EDT 2003