When beginning this project (see proposal), I had grand visions of using
diffusion processes to model fire and smoke, volumetric lighting and shading for realistic flame
rendering, and the rib format's movement specification for accurate motion-blur. This turned out to
be a difficult undertaking - see Figure 1.
So rather than a physically-accurate, scientifically rigorous, and elegantly integrated solution,
I embarked on a journey of hacks, recklessness, and Broganization.
So what attributes of these pictures of fire are most distictive? Several obvious ones are the bright color of the fire, the parabolic bands of light, the irregularities in the bands, the motion-blur of the people, and the dim glow cast on the surroundings. A couple more subtle features are the reddish halo around the bright bands of fire, the streaks of flame/smoke left by particles flying away from the main band of fire, and the slight discontinuities in places in the bands of flame.
Obviously, the bright color and parabolic shape of the bands of fire are most important to this
effect. Since LRT doesn't implement motion blur, I implemented a parabolic-moving-sphere primitive,
which returns an intersection at any point in the path of the motion of the sphere. Since the flame
is so bright, actually blurring the moving sphere against the background is unimportant; the fire
will saturate the film regardless of what is behind it. Figure 2 shows a rendering of this primitive
without any shading (all intersections are simply assigned the color red).
To make the path of the flame more realistic, we add in two frequencies of noise to the velocities
of the sphere along the path.
The actual paths of flame in the photographs were created by an ignited roll of toilet paper being
kicked. As the roll of toilet paper flies through the air, it spins; this creates variation in the
width of the band of fire, and this variation tends to be at least somewhat periodic, since the
toilet paper roll is spinning at a near-constant rate while it is aloft. To capture this effect, we
add in some periodic noise to the radius of the moving sphere, as well as high and low frequency
noise to account for other irregularities in the width of the flame bands.
We would like to also model the reddish halo around the edges of the bands of flame. We track
this area by using the path of a slightly larger sphere undergoing the same motion. By intersecting
first with the smaller sphere, and then with the larger if the first sphere is missed, we can capture
only the border of the bright band. This region is colored green in Figure 5.
Finally, we shade the center band with a bright, almost white color, and shade the surrounding
halo red. We calculate how close a point in the halo is to the bright band using the distance
between the two sphere intersection points of the ray (in case you haven't figured it out, none of
this is not a hack), using a damping and a power function to get the desired falloff.
|Can you guess which is the rendered image and which is a photograph?|