Fire and Smoke Simulation

Our Fire and Smoke simulation was the result of a practical course "Physically-Based Animations and Special Effects" at the computer graphics group at RWTH Aachen University at which I took part in 2009. During one semester, we implemented a technique similar to the one described in the paper "Animating Suspended Particle Explosions" by Feldman et. al.: A Particle System Suspended In and Interacting with a Fluid Simulation.

Cross-Platform Implementation

The program and the GUI were implemented using the Qt Framework. By using qmake, the program can be compiled and executed under Windows and Linux.

A screenshot of the graphical user interface

Particle Rendering

Alpha

Alpha

One challenge during the development of our demo, was to create a reasonable visual impression for the "burning" particles. Our idea was to render the burning particles as billboards where shape of the particles can be controlled using an appropriate alpha texture.

The billboards are rendered with special textures defining their current color as the particles deplete and end up as smoke. This also yields an additional degree of freedom for graphic artists:

burn texture burn texture burn texture

Deep Shadow Map

Our implementation uses a 3D shadow map of variable resolution for the calculation of volumetric shadow and light effects. Using this approach, we are able to render the glow effect of the burning particles, as well as self shadowing of the particle cloud and shadows on the ground.

boom4shadow3

For more information, please also have a look at our final presentation slides.

Results

The following videos show some of our results:

Single Burst

  • grid: 20 x 30 x 20
  • 85.000 particles total
  • deep shadow map to calculate self occlusion

Flamethrower

  • grid: 40 x 30 x 20
  • 2000 new particles per step
  • CPU implementation, rendered with 2 fps

ACG Logo

  • 50.000 particles total
  • random wind field