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
Alternatives to Particle Systems
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)
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement