Animating Explosions
CS8113 Adv Animation Project
Background
Most research on animating explosions has been on the fireball and smoke.
Not much has been done on the actual blast wave. Two GI'99 papers address
the blast wave, although we feel that they fall short, and we can more
accurately model the blast waves through simulating the fluid flow of
compressible gases.
An explosion is caused by a very fast reaction, happening in microseconds.
The detonation wave spreads very quickly through the explosive. Gas
thousands of degrees and thousands of atmospheres of pressure is
generated. This is the blast wave, which causes most of the damage aside
from primary fragments, i.e. explosive casings and shrapnel. The blast
wave expands rapidly. As it expands, the temperatures cool, and the
temperatures drop. They will actually swing below equilibrium and swing
back up, generating secondary waves. But these are relatively
inconsequential and can be ignored.
The GI papers both use blast curves to model the blast wave. When a blast
wave hits an object, the object fractures, in one paper as pure voxels and
in other paper as a fractal. The GI papers do not deal properly with
occlusion, reflection, and refraction of the wavefronts.
Often people use known blast curves to model blast waves, as the numerical
solution of the fluid dynamics is difficult. But in Foster's work, he is
able to use a simplification of the Navier-Stokes equations to do
computational fluid dynamics (CFD) on turbulent gases. However, we
have to use a generalization of them to allow for the compressibility of
gas.
When a blast wave hits an object, we wish to simulate realistically
what happens: there are reflections, diffractions, and mach reflections.
We wish to model these new wavefronts, in addition to calculating
fractures based on wavefronts. James's fracture code will be a great
help here.
Plan
Read current graphics and engineering literature.
Model the fluid dynamics through voxels. In order to keep computation
low, we will keep a list of high-pressure [active] voxels. Pressure
goes from high to low, so we just see how the high-pressure voxels
spread to low-pressure voxels. When the pressure in voxels drop
below a certain threshold, we stop considering them active and
remove them from the list.
Compare with real-world blast curves to verify the math.
Apply forces to objects based on the blast waves.
Link in James's fracturing code.
References
Animating
Exploding Objects
A Visual Model
for Blast Waves and Fracture
Realistic Animation of Liquids
Modeling the Motion of a Hot, Turbulent Gas [Nick Foster, SIGGRAPH 97]