CUDA Path Tracer

October 2022

Diffuse Dragon

Specular Dragon

Imperfect Specular Dragon

Refractive Dragon

Description: A GPU-accelerated physically-based path tracer written with CUDA and C++. Parallelizes several steps such as camera ray generation, ray intersections, shading, and writing to the final output image.

See Github for full technical details and more images.

Features:

  • Ideal diffuse, perfectly specular, imperfectly specular, and refractive surfaces
  • Path continuation/termination with stream compaction
  • Material sorting
  • Caching first bounce intersections
  • Acceleration structures
    • Linear Bounding Volume Hierarchy (LBVH)
    • Bounding Volume Hierarchy (with Midpoint and SAH split methods)
  • Russian roulette ray termination
  • Depth-of-field
  • Stochastic sampled anti-aliasing
  • Arbitrary mesh loading (with bounding box culling)
  • Reinhard operator and gamma correction (conversion to sRGB)