How do games make fire and smoke effects?

Started by
4 comments, last by dpadam450 12 years, 10 months ago
Hi all, I was wondering around, searching internet about particle system and fire effects but I haven't found any good answers. On some games I have realized that some sort of movie is being shown as the fire, which is pretty good but not for the fires which are close to the viewer. Please let me know how to make realistic fire and smoke effect in a game. Also if you have a good sample code or good description of how to make these kinds of cool fires please note them too.

Thanks.

Advertisement
http://www.gamedev.net/page/resources/_//feature/fvisual-arts/make-a-particle-explosion-effect-r2701

it's not SOLO fire but some.
EnJOJ Gaming
To make fire or smoke, I use small squares for each particle that has a "fire" or "smoke" texture mapped on it. The square is billboarded so that it always faces the camera no matter which way you change your view. With the right particle settings you can make some pretty realistic fire and smoke this way.

Hi all, I was wondering around, searching internet about particle system and fire effects but I haven't found any good answers. On some games I have realized that some sort of movie is being shown as the fire, which is pretty good but not for the fires which are close to the viewer. Please let me know how to make realistic fire and smoke effect in a game. Also if you have a good sample code or good description of how to make these kinds of cool fires please note them too.


Take a look at the GPU gems book 1 chapter 6. It explains one way of producing fire and smoke effects similar to the Balrog's fire from Lord of the Rings.

http://developer.nvidia.com/node/105
Good judgment comes from experience; experience comes from bad judgment.
For fire you should use additive blending. This means that you simply add the particles onto what is already in the framebuffer through blending, which is done with the blend equation glBlendFunc(GL_ONE, GL_ONE).
A nice property of additive blending is that you don't have to sort the particles by depth prior to rendering them.

For smoke you typically use alpha blending. The standard method is sorting the particles by depth and then rendering them with the blend equation glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA).
Another way to do some particles: http://blog.wolfire.com/2011/02/Overgrowth-a118-video-changelog

NBA2K, Madden, Maneater, Killing Floor, Sims http://www.pawlowskipinball.com/pinballeternal

This topic is closed to new replies.

Advertisement