CS348b2007

CS 348b Final Project - Physically Based Fire Rendering

Overview

Fire is a natural phenomenon that can produce some interesting and stunning visual effects. Of course in the real world, fire often occurs with unpredictable and dangerous situations, so there is significant practical value in generating simulated images of it. For this project I would like to explore physically based methods for simulating and rendering fire.

A variety of methods have been used to simulate fire in graphics. One popular method is to model flames using Perlin noise type functions. While this is fast and can lead to some quite impressive images in some circumstances, in others the resulting flames appear very synthetic, especially with regards to dynamically moving flames. On the other hand, physically based approaches attempt to reproduce some of the actual physical phenomena that lead fire to behave as it does, often resulting in quite realistic images. Simulating the full complexity of the burning process, however, is computationally a very difficult problem. The challenge is to abstract to the right level of detail to generate physically realistic looking flames, while still maintaining reasonable computational tractability. It is this sort of method that I would like to examine.

Modeling Flames

The model of fire I would like to implement is based on that of Nguyen et al[1]. Their model does not attempt to be a precise simulation of all the chemical and physical processes of fire, only to simulate the process with sufficient fidelity to generate visually accurate flames, while maintaining computational complexity acceptable for rendering a scene. Specifically, the gaseous fuel and hot gaseous products of the burning are modeled with the incompressible Navier-Stokes equations and coupled together with a model that accounts for expansion during the burning reaction. This simulation maintains the density and temperature fields, as well as the location of the reaction interface, all of which are used in the actual rendering of the flame. Because this method assumes incompressible flow, it is useful mainly for simulating low speed "deflagrations", not explosions with high speed flame expansion. Hong et al[2] have extended this method to account for more turbulent flow and "cellular patterns" like those seen in the images shown by coupling the equations with equations from "detonation shock dynamics". This method generates some quite impressive large scale flame effects that I hope to be able to reproduce.

Rendering Fire

Fire is an emissive participating medium, and as such there are several interesting problems with generating physically based images of it. Pegoraro and Parker[3] discuss many of these challenges. Pbrt's volume rendering engine will serve as the basis for my implementation. At the most basic level, much of the light coming from the flame is generated from blackbody radiation from the hot soot produced from the flame, so reproducing this will be my first task. Specifically, using the temperature field generated in the simulation an emission spectrum can be generated at any point in the flame volume, and combined with the density information from the simulation, integrated as a volume region in PBRT's volume rendering framework.

Beyond this there are several different possibilities I would like to consider for improving the rendering, time permitting. For example, the large temperature variations around the fire results in varying densities and hence a spatially varying index of refraction, which produces the familiar "heat waves" around the fire, seen in the image below. Implementing a varying index of refraction in PBRT's volume ray tracing would provide another level of realism to the fire images.

References

[1] Nguyen, D., Fedkiw, R. and Jensen, H., "Physically Based Modeling and Animation of Fire", SIGGRAPH 2002, ACM TOG 21, 721-728 (2002)

[2] Hong, J.-M., Shinar, T. and Fedkiw, R., "Wrinkled Flames and Cellular Patterns", SIGGRAPH 2007, ACM TOG (in press)

[3] Pegorado, V., and Parker, S. G. "Physically-based realistic fire rendering", In Eurographics Workshop on Natural Phenomena (2006)

(Images shamelessly lifted from various sites around the web).

last edited 2007-06-13 20:57:51 by IanBaker