CIS536 Caustics
2021 - 2021
CIS536 Caustics was a course project for a Computer Graphics class at K-State. The goal of the project was to render geometrically-accurate caustics using photon mapping, in Unity. The project was inspired by the idea of a "caustic map" in Yaobin Ouyang and Xueqing Yang's "Generating Ray-Traced Caustic Effects in Unreal Engine 4, Part 2." However, my project computed the caustic map ahead of time and stored it to disk to be reused.
The implementation unfortunately suffers from several issues. Ray-tracing shaders were far out of scope for the class, so the implementation uses raycasting in Unity's physics engine instead. This doesn't provide enough accuracy or performance as would be desired for this application. It did, however, allow for some very interesting visualizations of the caustic map generation.
Here's a video of the photon mapping process (warning, flashing images):
A few more showcases of the results:



These results could all certainly be improved by more advanced techniques like a gaussian filters or photon differentials. Performance improvements for more photons and samples would also certainly help.