Category: Game Code  ·  Originally posted February 26, 2009  ·  Last updated February 1, 2011

Mathematically Generated Fire – REVISED

A demonstration of mathematically-generated fire

Because the first draft of this project has received more traffic than I anticipated, I’ve gone ahead and written a new and MUCH faster version of the algorithm.  As before, no pre-built images or palettes are used, meaning that both coloring and flame generation are done using only math (and ingenuity!).

Updates to this version include the following:

  • DIB sections are now used in place of Get/SetPixel.  This alone nearly tripled the frame rate on my old 1.6ghz laptop.
  • Flame coloring is now done via look-up tables.  Previously this was calculated on the fly, which required way too many duplicate calculations.
  • Random horizontal movement of individual flames is now calculated for every 4th pixel (instead of every single one).  Random number generation is costly, and visually this method looks almost identical (but is markedly faster).
  • Scrollbars are now available so that you can color the flames however you’d like.  Red flames, blue flames, green flames, or any combination in-between – so knock yourself out.

On my aforementioned 1.6ghz laptop, the original version of this code ran (compiled) at 6-7 fps for a 512×256 image.  The new code runs between 27 and 28 fps – or a 400+% increase.

Enjoy, and if you have any recommendations for Fire v.3, leave a comment!

This site - and its many free downloads - are funded by donations from visitors like you.
Please consider a small donation to fund server costs and to help me support my family.
Even $1.00 helps. Thank you!

 

bookmark and share this article

Email this article to a friend Print a copy of this article Subscribe to article comments Bookmark this article on Delicious Submit this article to reddit Submit this article to Digg Submit this article to StumbleUpon Share this article on Facebook Tweet this article

related articles

Discussion (Be the first to comment!)

Public comments are closed for this article. Private comments may be submitted using this link.

Comments are closed.