The Lattice-Boltzmann Method for Smoke
Overview
The goal of this project is to design a physically-based, yet fast and simple method to simulate smoke. In recent years, the Navier-Stokes (NS) equations governing fluid motion have been applied in a novel way to achieve a realistic animation. Here, we based our work on the Lattice Boltzmann Model (LBM) that simulates the microscopic movement of fluid particles by linear and local rules on a grid of cells, so that the macroscopic averaged properties obey the desired NS equations. The LBM is a cellular automata defined on a 2D or 3D discrete lattice of fluid cells, which is used to solve fluid animation based on different boundary conditions. The LBM simulation generates in real-time an accurate velocity field and can incorporate an optional temperature field to account for the buoyancy force of hot amorphous objects. Because of the linear and regular operations on each local cell of the LBM grid, we implement the computation in commodity texture hardware, further improving the simulation speed. Finally, textured splats are used to achieve real time rendering speed and to add small scale turbulent details. Our method can also simulate the physically correct interaction of amorphous objects with stationary or mobile obstacles in real-time, while still maintaining highly plausible visual details.
Current Results
|
Figure |
Grid Size |
Software Calculation |
Hardware Calculation |
Rendering |
| 1 | 32X32X32 | 180ms | 3.6ms | 15ms |
| 2 | 44X20X30 | 155ms | 4.1ms | 15ms |
| 3 | 58X40X30 | 460ms | 9.1ms | 15ms |
| 4 | 30X12X30 | 70.2ms | 3.58ms | 15ms |
Extended Work
Dynamic changing of textured splats