An extended version of the Whitted Ray Tracing algorithm from Siggraph 1981, enhancing the rendering of diffuse surfaces.

Background

The Whitted Ray Trace starts shooting rays from the camera. Once the ray hits a diffuse surface it stops, resulting in that the light variations on these surfaces are lost.

An example read from 3D Computer Graphics, Allan Watt mentions the reflexes from the sun, that shows on the bottom the swimming pool. When ray traced, these reflexes will be lost, since the bottom of the pool is a diffuse surface.

Two pass tracing

Let us start in the other end. Once a ray is cast -- this time from the light source -- it will reflect on and refract through specular surfaces until hitting a diffuse surface. All as usual; except that this time, the information about the light energy is stored in a light map which is associated with the surface.

Now, when doing a normal Whitted Ray Trace and the ray stops at a diffuse surface, the information from the light map will be added. The result will be that the bottom of our swimming pool will be full of beautiful reflexes, just as it should be.