Rendering smoke and fire in real-time

A student project for the Advanced Image Synthesis course 2006

Ingemar Rask and Johannes Schmid

Initial project description

The goal of this project is to find and implement methods for rendering smoke and possibly fire effects at interactive frame rates. Modern hardware acceleration features such as vertex and fragment shaders are likely to be used. The input data is a 3D grid of density values for each frame. If possible, this will be generated in real-time as well (with Johannes Schmid's parallel project from the course Physically-Based Simulation).

Tentative goals to achieve:
  1. Pure smoke rendering
  2. Pure (volumetric) fire rendering
  3. Combined rendering of smoke and fire
  4. Additional effects such as sparks

What results do we want to show?
A real-time demo showing a stunning reproduction of a small fire...or any approximation thereof ;)

What are the technical problems we have to solve?
Which steps are necessary to solve those problems?
  • Suited input data is required, either from an own simulation or obtained somewhere else
  • A fast technique for rendering volumetric smoke has to be developed and implemented
  • Put the whole thing into a nice context
  • Develop a similar technique for volumetric fire
  • Possibly enhance the fire experience with sparks (which could be rendered as particles with HDR effects) or other effectss
What third-party software or libraries do we want to use?
OpenGL, possibly a high-level 3D engine.