2022
Real-Time Caustic Illumination

Andrew Nelson
Masters of Science Capstone Project, August 2022

[Proposal    Report    Presentation]


Caustic illumination is the natural phenomenon that occurs when light rays bend as they pass through transparent objects and focus onto receiver objects. One might notice this effect on the ocean floor as light rays pass through the water and focus on the floor. Rendering this effect in a simulated environment would provide an extra touch of realism in applications that are meant to fully immerse a user in the experience. Traditionally, caustic illumination is simulated with offline ray tracing solutions that simulate the physical phenomenon of transporting photon particles through refraction and depositing the results on the receiving object. While this approach can yield accurate results, it is computationally intensive, and these ray tracing solutions can only be rendered in batches. To support caustics in real time, the calculations must simulate the natural phenomenon of photons traveling through transparent objects in every rendering frame without slowing down the application. This project focuses on rendering caustics in real time using a multi-pass rendering solution developed by Shah et al. Their approach constructs a caustic map in every frame which is used by subsequent rendering frames to create the final effect. The goal of this project was to develop an application that renders caustics and supports user interaction in real time. Our implementation uses the Unity game engine to successfully create the desired effect while maintaining a minimum frame rate of thirty frames per second.

Lastly, bugs can be fascinating (or not) but always interesting. It is always important to check for validity of input values, especially for trigonometric functions, e.g., arc-sine or arc-cosine, or, square-roots (check for positive input). Here are some interesting examples of before and after checking of input validity.

Under supervision of Dr. Kelvin Sung. Division of Computing Software Systems at UW Bothell