CS348b2007

Rendering Jet Engine Exhaust

Team

Overview

We wanted to reproduce the effect of looking through a mass of turbulent hot air as produced by a jet engine.

Physical explanation

Different temperatures inside the air mass result in varying air densities. The varying densities in turn change the index of refraction throughout the air mass. As a result, a viewer looking through the plume of engine exhaust sees a blurry and perturbed background scene.

Approach

The physically correct model for this effect is both complex and will most likely require long rendering times, so our approach was to see if we could reproduce the same effect using an approach that is less computationally expensive but still yields realistic-looking results. We treated the hot air as a new geometric primitive that is similar to glass, but whose index of refraction can be varied throughout the material.

Refraction mapping (Jawed)

To accomplish this we used a method similar to bump mapping, which we call refraction mapping. Rather than perturbing normal vectors during lighting computation according to a bump map texture, as in the case of bump mapping, refraction mapping allows one to vary the index of refraction of a material according to a refraction map texture during refraction vector computation.

Refraction map

Result

Implementation

I modified SpecularTransmission::Sample_f() to fetch the index of refraction from the refraction map when the refraction ray is computed. The index of refraction is scaled from 1.0 to 1.2, depending on the pixel value of the refraction map. I also modified the Fresnel computation to remove the material's color dependency on the ratio of the indexes of refraction of the internal and external materials. The term "(et*et)/(ei*ei)" in the equation caused the material to look brighter with a higher index of refraction. Since this was not a desired effect, I changed this ratio to always be equal to 1.0.

Refraction blurring (Jawed)

I found that the above approach was not sufficient, as it produced images that lacked the blurry appearance seen in the real world. I added blurring by shooting multiple refraction rays at each intersection with our custom material, where each refraction ray is jittered by a random amount. These refraction rays are then averaged to obtain the final color of the intersection with the material. Higher jitter values produce a stronger blur.

Implementation

Jittering

Particle system (Anders)

To reproduce the turbulence shown in the image above, the index of refraction cannot merely be random. The pattern of the varying indexes of refraction must follow a turbulent pattern.

Implementation

Scene lighting (Anders)

Final image

(Empty scene without jet)

(Rendered scene with jet exhaust)

References

http://en.wikipedia.org/wiki/Air_density

last edited 2007-06-14 07:42:46 by JawedKarim