Raytracer Ray Tracing, Radiosity, and Photon Mapping in C++ and OpenGL.
![Ray tracing with reflections and soft shadows](/assets/projects/raytracer/raytracing.png)
![Ray tracing using textures](/assets/projects/raytracer/raytracing-texture.png)
Overview
This was a homework assignment for Advanced Computer Graphics. This project focused on implementing rendering using ray tracing, radiosity, and photon mapping.
My Contributions
Ray Tracing
- Ray-sphere intersection testing
- Shadow and reflective rays
- Distribution ray tracing for soft shadows and antialiasing
- Stratified random sampling
Radiosity
- Form factor computation
- Iterative radiosity solving
- Occlusion ray casting
Photon Mapping
- Photon distribution throughout the scene
- Photon collection using a k-d tree
![Radiosity within the Cornell Box](/assets/projects/raytracer/radiosity.png)
![Undistributed radiosity during iterative solving](/assets/projects/raytracer/radiosity-undistributed.png)
![Photon mapping caustics using a reflective ring on a flat surface](/assets/projects/raytracer/photon-mapping.png)
![Photon mapping results exaggerated (upscaled)](/assets/projects/raytracer/photon-mapping-exaggerated.png)
March 31, 2014.