Alternatives to Particle Systems

Started by
11 comments, last by Devilogic 18 years ago
In the case of smoke (and fire) you can use a finite elements approach to solving the fluid equations. This approach is not unlike CA, since you usually represent the fluid (smoke in your case) with grids/lattices and you update them using specific rules each frame (some might disagree with my definition of CA though).

A good start would probably be Jos Stam's papers (specificaly Real-Time Fluid Dynamics for Games and Stable Fluids). I managed to implement a simple fluid solver in a few hours by reading the Real-Time Fluid Dynamics for Games paper (really fun to play around with :), without knowing much about the subject beforehand.

And if you're really into fluid dynamics you might want to try the Lattice Boltzmann method/model (pure CA). Reportedly, it's becomming quite popular in the area of computational fluid dynamics for its simplicity and speed.

Like Rogalon suggested, you can probably also use 3D textures / hypertextures / volume rendering to achieve a visual effect similiar to smoke/fire (haven't tried it though).


That's all I can remember as a serious alternative to particles at the moment, though I'm sure there exists many even more esoteric ways to achieve the same effect :)

Hopefully this has been helpful to you.

Regards,
Devilogic
Advertisement
Quote:Original post by Devilogic
Like Rogalon suggested, you can probably also use 3D textures / hypertextures / volume rendering to achieve a visual effect similiar to smoke/fire (haven't tried it though).

To get you going:

Below is a link to the source, executables, and images related to my current voxel renderer. It works only on 6200 and better GPUs, sorry ATI owners. The gas cloud data was obtained from a custom version of Stam's Stable Fluids.

It uses OpenGL 3D textures for the volume data, and GLSL for the rendering.

The renderer uses Snell's Law for now, but if you are interested in obtaining the source for the upcoming Fresnel equations-based renderer, please send me a private message.

Have fun, no license, free for all, save the whales, GO FLAMES, etc:



http://cwiki.org/index.php/Special:Newimages

Source:
Gpuvol_src.rar -- full C++/OpenGL source code
Distribute.rar -- resources, including necessary shaders

Current runtime:
Distribute-apr04-2006.rar

Old runtimes:
(various RAR and ZIP files)
P.S.

Just remembered yet another way to get a "decent" smoke effect: Plasma fractals (real easy to implement, but might be too random for your needs).

This topic is closed to new replies.

Advertisement