Procedural 3D-Fire with Perlin Noise on the GPU

Sometimes you want to create textures and effects that resemble natural phenomena. It can be done by hand, but that restricts the result a lot. Better is, in many cases, to use procedural methods. This means that no images or textures are saved on memory, but rather computed in real-time when they are needed. As the computers get quicker and quicker but memory transfer time stays quite constant, I thought this was a good method to learn.

I took the course Procedural Methods for Images, and chose to create procedural fire as my final project. The fire is built from nothing but multiple scales of Perlin Noise in four dimensions (with time). The course examiner, Stefan Gustafsson at Linköping University, has written a paper about noise that can be found here.

My fire is implemented with GLSL to make use of the GPU for all the noise calculations. With a Nvidia GTX 570 graphics card you can get performances around 30 fps.

The report is available in swedish.