C++ / CUDA | Github Repository
I implemented another pathtracer for my GPU Programming class, this time using CUDA kernels to produce results with much faster performance. I again referenced Physically Based Rendering: From Theory To Implementation for this project. The pathtracer handles diffuse, reflective, and Fresnel materials, and features global illumination and caustics. In addition to a thin lens camera that simulates depth of field, as well as procedural shapes, I also created procedural textures, which generate colors based on the position and normal data of the surface. These can be combined with the procedural shapes for a totally procedural object. Finally, I implemented the ability to load custom OBJs into the scene.