University of California, San Diego · Spring 2006 CSE 168: Rendering Competition

  ਵਿਕਰਮ ਸਿੰਘ ਨਿੱਜਰ
Vikrum Singh Nijjar


I implemented thin film interference in my ray tracer which simulates iridescent surfaces. The scope of the project was limited to single interface film and media. Some examples of iridescence include the anti-reflective coating on a camera lens1 (proposed image), goniochromatic paint2, and soap bubbles3:



Over the course of the quarter I successfully implemented the basic components of a ray tracer:

Thin film interference

Reading scientific and academic papers7--13 is a thoroughly excruciating process. Time not spent trying to decipher different authors' notation was spent trying to infer omitted implementation details. [10] and [8] were used as a primary sources for implementation and [7] for CIE XYZ and spectral power density details.

(spectral distribution to cie xyz)

(amplitude obliteration)

(phase difference between rays 4,5 & 6,7)


Rendering competition submission of camera lens:

In addition to simulating the anti-reflective coating of a camera lens, I was able to simulate chameleon paint on a car4 by using Perlin noise to vary film thickness ±0.03µm:

Chameleon Paint
Rendered (AVI | GIF)


Since I had no prior experience with 3D software and -7 artistic & creative skills, modeling the camera lens took an obscene amount of time. With no access to commercial software, I chose to use Blender 2.41.

The main hurdle in creating the components was the fact that the normals on a cylinder's sheath are orthogonal to the normals of the two faces: interpolating normals for such an object becomes problematic. Blender has a feature which allows one to recalculate normals for the outside and inside of objects which, while useful for some components, does not work for certain geometries.


Adaptive Supersampling

In order to render antialiased images in a reduced amount of time I implemented adaptive supersampling. I tried a few different heuristics to decide when to recurse on a pixel: one of the early methods involved interpreting colors as vectors and measuring the angle between two colors to determine whether or not to recurse. While the semantics of "the angle between two colors" are questionable, I did have varying success with this method. I opted for a simple metric based on percentage differences of individual RGB components of color; this methods lacks when antialiasing pixels with contributions from distribution ray tracing---producing speckled results. A visualization of this metric is shown below with high RGB values indicating high aliasing.

Visualization of threshold metric


Other various features implemented:
  1. Soft shadows.
  2. Depth of field; left: 1 sample/lens, right: 25 samples/lens.
  3. Procedural texturing: Pseudo-cellular.
  4. Procedural texturing: Snow-globe with snow capped mountains, hills, hurricanes, tornadoes, and a lake. This feature is so advanced that I don't know where it's implemented.
  5. Path tracing: Visualization of global illumination.
  6. Photon mapping: Caustics.
  7. "Environment Mapping6."



  1. Carl Zeiss Nikon (ZF) Image Gallery.
  2. Pearlescent Viper.
  3. Soap bubble.
  4. Car model.
  5. Chameleon TVR.
  6. Environment map.
  7. H. Kubota. ``On the Interference Color of Thin Layers on Glass Surfaces.'' J. Optical Society of America, Vol. 40, No.3, Mar. 1950, pp. 146-149.
  8. M. Dias. "Ray Tracing Interference Color." IEEE Computer Graphics and Applications, vol. 11, no. 2, pp. 54-60, Mar/Apr, 1991.
  9. J. S. Gondek , G. W. Meyer , J. G. Newman. ``Wavelength dependent reflectance functions.'' Proceedings of the 21st annual conference on Computer graphics and interactive techniques, p.213-220, July 1994.
  10. Y. Sun, F. D. Fracchia, T. W. Calvert, and M. S. Drew. ``Deriving Spectra from Colors and Rendering Light Interference.'' IEEE Computer Graphics and Applications, vol. 19, no. 4, pp. 61-67, Jul/Aug, 1999.
  11. H. Hirayama, K. Kaneda, H. Yamashita,† and Y. Monden. ``An Accurate Illumination Model for Objects Coated with Multilayer Films.'' EUROGRAPHICS 2000.
  12. H. Hirayama, K.Kaneda, H.Yamashita, Y.Yamaji, and Y. Monden. ``Visualization of optical phenomena caused by multilayer films based on wave optics.'' The Visual Computer (2001) 17:106–120.
  13. D. Jaszkowski, J. Rzeszut. ``Interference colours of soap bubbles.'' The Visual Computer (2003) 19:252–270.
  14. Octane Digital Studios: Environment map.
  15. H. Faas (Ed.), T. Page (Ed.). Requiem: By the Photographers Who Died in Vietnam and Indochina


Various other artifacts from my raytracer.