CUDA Path Tracer

In this project, I have implemented a CUDA-based path tracer capable of rendering globally-illuminated images very quickly. Path tracing is a type of ray tracing which takes a random sampling of all of the rays to create the final image. This results in sampling a variety of different types of lighting, but especially global illumination.

Features Implemented in this Path Tracer:

  • Ray sorting by material type

  • First Bounce Cache

  • Stream Compaction to remove terminated rays.

  • Diffuse, reflective and refractive surfaces

  • Stochastic Sampled Anti-Aliasing

  • Depth of field using Bokeh effect

  • Motion Blur

  • Direct Lighting

  • OBJ Mesh loading with Bounding Volume Intersection Culling

  • Denoiser