CS 551/651 - Image Synthesis   Final Project

Procedural Iridescence in Aging Glass

by Nathan Hoobler and Kim Dylla

Get .tiff File of Image Here [600k]

Movie of Progressively Aged Glass (0 to 2500 years) - [.mov 1.3MB]

 

Overview

As glass work ages, exposure to the elements (particularly moisture) can subtly change the chemical structure of the material near the surface. Though the process takes some time, it will eventually leech chemicals out of the glass near the surface, resulting in a thin layer of material with slightly different reflective and refractive properties. This layer is thin enough (on the order of a few hundred nanometers) that it it begins to interact with photons on a wave-level, causing waves which reflect off the top of the film to interfere with those refracting through the film and reflecting off of the material below. This causes certain wavelengths of light to be strongly boosted, while causing others to be completely canceled out, based on the angle of incidence and thickness of the film. This "thin film interference" creates very vibrant wavelength- and view-dependant effects which can be seen in many forms of ancient materials (such as Roman and Egyptian glasswork).

Reference Images Courtesy of The Virtual Egyptian Museum

Iridescence

To simulate these effects, we created a wavelength-dependant integrator for PBRT which spectrally samples materials with wavelength-dependant effects. The reflection code passes into a special Material which takes a light spectrum, incident angle, and outgoing angle, and computes outgoing illumination for that point. Within the wavelength-dependant reflectance function, we split the input illumination into XYZ color space, then convert that into a spectrum using the CIE curves. One we have the light spectrum (sampled as some finite number of frequency bands) we step through and process the reflection and interference for each wavelength independently. Since the film is extremely thin relative to the scene size, we assume that light at a given point on the surface effectively interferes with itself, keeping all our computations local.

The CIE curves map X, Y, and Z components to different spectra.

For each wavelength, we compute the power of light reflected off of the film (Ir), the power of light reflected off the substrate below (It), and the difference in phase between the two rays (Phi). The power is computed using a Phong reflection model at each layer; the difference in phase cane be computed purely geometrically as

Pi * r(L) * d * Dot(Wi+Wo, N) / L

where 'L' is the wavelength, 'r(L)' is the index of the refraction for that wavelength in the film, 'd' is the thickness of the film at that point, 'N' is the surface normal, and 'Wi' and 'Wo' are the incoming and outgoing directions (respectively). Based on this, we compute the total intensity of outgoing energy of that wavelength as

Ir + It + 2*cos(2*Phi)*Sqrt(Ir*It)

Once we have an output spectra, we simply integrate along the wavelength using the spectra and CIE response functions for X, Y, and Z. Once we have those values we multiply by a matrix which gives us one of several metamers which can be used to describe the color matching the resulting spectra.

X, Y, and Z can be derived from convolving the spectrum with the CIE Curves and summing the values.

 

Procedural Aging


As said before, the thin film is the result of erosion and aging of the glass. To simulate this, we map an "erosion texture" to the surface, which corresponds roughly to the rate of erosion at various points (due to cover/immersion, etc). Based on this and an age for the material, we can compute how thick of a film would develop at each point, giving a convincing gradient of iridescent spectra at render time. This texture can be as smooth or sharp as needed to simulate the given environment. The erosion texture is also used to scale the specularity of the model (the idea being that less eroded surfaces are covered with material that make the surface less shiny (as in the reference images).

The erosion texture was produced in Photoshop by artistically modifying a photograph of actual glass erosion patterns.   This image was then converted to  high-contrast grayscale.

 

 

Scene

The PBRT scene was created using a text editor, and contains a plane with a grid texture, an area light, and a sphere of our 'real glass' material.  Due to challenges with the Maya-PBRT export plugin, and the need for UV Texture coordinates for our erosion, we decided to just use a simple scene.

Images

Please download the above-linked movie to see the progressive aging of the glass.

Thin Films from 350 to 850 nm

Glass Spheres aged from 0 to 2500 years

 

 

Technical Diagrams from http://www.fourmilab.ch/documents/specrend/

1