Fluid dynamics is implemented based on Jos Stam's "Stable Fluids" and "Real Time Fluid Dynamics for Games" papers and
Robert Bridson's "Fluid Simulation for Computer Graphics" book.
Volumetric rendering is implemented based on the "Real-Time Volume Graphics" book.