GPU Path Tracer
Project Details
Type | Student project |
Time span | 8 weeks (2013) |
Team size | Solo |
Main role | All of them! |
Notable tech | OpenGL, CUDA |
Project Summary
At NHTV Breda, we were given several rendering assignments. One of these required us to create either a ray tracer or path tracer. I chose to create a path tracer for its photo-realistic looks, and I am satisfied with the end result.
Because path tracers notoriously demand high performance in order to render a good-quality image, I opted to use NVidia's CUDA to significantly speed up rendering time. Although this was out of scope for the original assignment (and my first time directly using the GPU in any form), this additional challenge proved to be a valuable learning experience: It taught me about various inner workings of GPUs such as data synchronisation, parallel programming, random number generation, and optimisation.
Features include:
- Accumulated results for better image quality.
- Spheres, planes, boxes, cylinders.
- Diffuse surfaces, reflective surfaces, and everything in between.
- Refraction.
- Beer's Law (absorption of light by see-through materials).
- Anti-aliasing.
- Depth of field.