View the screenshots
An implementation of sharp-edged convex volumetric fog, created using unextended OpenGL. It uses the stencil buffer, single-pass texturing (no multitexture), and many rendering passes. No tesselation of polygons is necessary; all rendered objects can be display lists, as texgen is used to compute texture coordinates. (It is necessary to override vertex colors with a single constant color for each fog volume; this can be done with colorgen, er, I mean GL_LIGHTING.) Because no precomputation is involved, the fog volumes can be freely moved over time.
description of algorithm
home : sean at nothings dot org