Animations Bio Home Images Links Publications


Caustics represents some of the most visually striking patterns of light in nature. Caustics are formed by light that is reflected or transmitted by a number of specular surfaces before interacting with a diffuse surface. Examples of caustics are the light patterns on the bottom of a swimming pool and light focused onto a table through a glass of cognac.

Caustics are impossible to simulate using radiosity or ray tracing but very easy with photon mapping :-) A photon map is build by tracing photons from the light source into the scene and storing these as they interact with the surfaces in the model. A more detailed description can be found in my book.

A glass of cognac

After noticing the nice caustic through a glass of cognac one late evening I decided to simulate it. Not having a 3d-model of a cognac glass (or a modeling package) I ended up writing a program that would take a number of sample points and generate a smooth spline curve, which was then used to generate a surface of revolution. This image was rendered on a P-90 in 4 hours using 64 samples per pixel, and roughly 200.000 photons for the caustic. Notice the detail in the caustic as well as the smoothly connected caustic & shadow boundary. The high number of pixel-samples was necessary to reduce noise in the depth-of-field simulation.

A metalring

Try illuminating a metalring on a table and you will see a nice cardioid caustic on the table. This shape is easy to describe mathematically and it is often used to illustrate caustics. It is created by light reflected by the inner side of the cylinder before being focused onto the table.

A prism with dispersion

A prism with dispersion - ie. wavelength dependent refraction. Notice the colors in the caustics. 1024x768 with 4 samples per pixel. Rendering time was 32 seconds on a Dual-PII-400MHz Linux-PC.

A caustic from a glass sphere

This is a simple example of a caustic created as light shines through a glass sphere. This caustic in the image is a direct visualization of the photon map which in this case uses approx. 600KB of memory (corresponding to 30000 photons). The image was rendered in 5 minuttes on a P-100.

A caustic from a sphereflake on a fractal landscape

Since the photon map can handle procedurally defined objects it is possible to have caustics from a sphereflake onto a fractal landscape. Both objects are procedurally defined - no explicit geometry is ever created.

The image shows three coloured caustics created as light from a red, green and a blue light source shines through a glass sphereflake.

The image was rendered using 4 samples per pixel and the rendering time on a 90Mhz Pentium based Linux machine was approx. 30 minutes. The caustic was created using approx. 350.000 photons (7Mb of memory).

A glass cognac on a fractal surface

This is a glass of cognac on a sand-surface. The sand-surface is a fractal surface approximated by 2 million triangles on which a sand texture has been created. Notice the caustic on the sand. Notice also that the reflection model for the sand is directional diffuse - this image demonstrates how photon maps can render caustics on non Lambertian surfaces.

A closeup of the caustic on the fractal surface

This is a closeup of the caustic on the previous image.

A cognac glass

The cognac glass was rendered using our the two-pass global illumination method. Notice the caustic on the table. In this image depth of field was simulated to give extra realism - notice how the backgound is blurred since it is out of focus.

Another view of the cognac glass

This view of the cognac glass was rendered using 16 samples per pixel and the rendering time was approx. 1 hour and 30 minutes on a P-90.

Yet another view of the cognac glass

Yes, I enjoy cognac :-)

Caustics on curved surfaces

This images illustrates caustics on a curved (bumpy) surface. This can in general only be done using the photon map! Unless the specular surface is simple and backwards ray tracing is possible. The image was rendered without any parameter adjustment and the rendering time on a P-90 was 72 seconds - 47897 photons were used to simulate the caustic.

Last update: October 7, 2002