CUDA Path Tracer

A GPU-accelerated path tracer

github project


Figure 1a. Rendering of diffuse, metallic and dielectric materials.
Figure 1b The same scene replacing diffuse with emissive spheres.
Figure 2. Render kernel (one per pixel). On each invocation, the camera casts raysPerPixel rays with random offsets from the pixel center and samples the scene up to maxBounces per ray. A pixel's color is the average of these samples.

This is an ongoing CUDA implementation of a path tracer, largely based on Peter Shirley’s Ray Tracing in One Weekend series of tutorials plus other resources.

Features currently implemented are:

  • Materials: diffuse, metallic dielectric and emissive.
  • Area lights.
  • Bounding Volume Hierarchy (BVH) partitioning.
  • Depth of Field.
  • Geometry: spheres and planes.

Future features will include:

  • Arbitrary geometry (i.e.: FBX, OBJ).
  • Probabilistic sampling.
  • Deep-Learing-based supersampling.