Particle Systems

Smoke, Fountain, and Fire Simulation

CMPS 161 - Final Project Winter 2008
Georg Albrecht


Description

The reason for doing this project was because I wanted to experiment with particle systems. A particle system is a group of individual particles. The particles are given simple rules that govern their interactions with each other and the surrounding environment. Despite the simplicity of these rules the results can be very realistic.
All particles need several basic attributes so that they can be easily manipulated. Some of these basic attributes are:

Other attributes may include My program uses all of the above attributes. By changing the color, directional pulls (such as gravity), lifetime, and starting velocities I was able to simulate smoke rising, a water fountain, and fire.


Running Envirnment and Controlls

This program was developed in Visual C++ 2008 Express Edition and uses the OpenGL and GLUT libraries. A link to the executable program is given below. To run in Visual C++ 2008 Express Edition, open a new console project, add source files and .raw files, compile, and run. The controls are:


Renderings


Smoke


Smoke with wind pushing to the right


Smoke with wind pushing to the right then left


Water Fountain


Water Fountain with wind just starting to push to the left


Water Fountain with increased gravity


Fire


Fire with strong wind to the right and increased gravity


Fire with Smoke


Fire with Smoke with light wind picking up to the right


Program with source code

Particle System.exe: This requires that you download particle.raw and particle_mask.raw below. Place them in the same direcory.
main.cpp, System.h, System.cpp
particle.raw, particle_mask.raw: The program should still run if you don't download the .raw texture files, however it will display boxes, which don't look as nice.


Refrences

  1. Donald Urquhart, Basic Particle Engine, http://www.swiftless.com/tutorials/opengl/particles.html
  2. DongGyu Park, et al. A Fire and Smoke Simulation for Mobile Game, International Journal of Software Engineering and Its Applications, Vol. 2, No. 4, October, 2008
  3. Fengdi Yang, Smoke Simulation, November 30, 2002, http://www.cs.usask.ca/grads/fey399/ProjectReport829.htm
  4. NeHe Productions, Lesson 19: Particle Engine Tutorial, http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19
  5. Pollitt, Edward. Real Time Smoke Simulation on Graphics Hardware, May 23, 2006
I also used the file reader for .raw files from http://www.swiftless.com under the OpenGL tutorials.