CS 184/284A Spring 2024: Final Project

Renders

papervideoslides

Abstract

In this project, we write a ray tracer that includes spectral information about rays within the light field. A traditional ray tracer tracks RGB intensities along the ray and propagates the ray using RGB information about scene elements. In reality, light is distributed by wavelength in a continuous space, with visible light occupying the range approximately from 400 nm to 700 nm. Optical phenomena arise from wavelength-dependent interactions, including dispersion, iridescence, and reflection probability. In this project, we refactor the ray tracer we wrote in Homework 3 to incorporate wavelength dependence by adding a layer of wavelength sampling. We also implement scene elements that leverage this feature, including glass materials, mirror surfaces, microfacet surfaces, thin films, and black body emitters. With these, we can create striking photorealistic scenes accessible only through spectral information.

Out of ~80 other projects, we got an honorable mention!

Figures

Two renders of a bunny, showing the effect of parameter B on the color of light refracted through glass.
Left, bunny rendered with non-dispersive glass. Right, bunny rendered with dispersive glass.
Example render showing the color differences between RGB rendering and spectral sampling for microfacet copper.
CBdragon with copper surface. On the left, RGB upsampled microfacet BSDF. On the right, spectral microfacet BSDF.
Soap films on PVC and Copper with film thicknesses given on the left.
Soap films on PVC and Copper with film thicknesses given on the left.
Actual colors of tempered steel at certain temperatures. Dragons with a color gradient corresponding to the colors of tempered steel. Dragons with a color gradient corresponding to the colors of tempered steel.
Iron oxide film on iron dragons, compared to a real reference of tempered steel Wikipedia. The left dragon uses varying refraction index from RefractionIndex.info, the right dragon uses constant refractive index, similar to Belcour and Barla, 2017.
Two soap bubbles against a white background with iridescent effects.
Soap bubbles modeled using a film on a vacuum. The foreground and background bubbles have a thickness of 500 nm and 350 nm, respectively.
Example render showing the color differences between black bodies at two different temperatures.
CBspheres with a black body area light temperature at 3000 K (left) and 12000 K (right).

Extras

Metal bunny with bubbles and prism Metal bunny with prism Refractive diamond Refractive bunny Iridescent film on a metal dragon Iridescent film on a plastic dragon Soap bubble and glass ball with film Glass coil with film under 3000 K black body emitter