← All works

CUDA Path Tracer

  • Rendering
  • C++
  • CUDA
  • Path tracing
  • glTF

A GPU path tracer built on CUDA, based on CIS 5650 at UPenn. It is rooted in physically-based rendering, loads glTF meshes and materials, and simulates light transport to produce soft shadows, caustics and depth of field.

The highlight renders use 5,000 samples per pixel or more, with up to 8 bounces per ray.

Visual features:

  • Diffuse, glossy, perfectly specular and refractive BSDFs
  • Stochastic sampled anti-aliasing
  • Physically-based depth of field with a thin-lens camera
  • glTF mesh loading with texture mapping
  • HDR environment maps
  • ACES and Reinhard tone mapping, gamma correction

Performance work:

  • Stream compaction removes finished rays; in open scenes render time drops from 25.7 ms to 18.2 ms
  • Bounding-box culling for glTF meshes, 20–40% faster on low- to mid-poly models
  • Material sorting was measured too, and turned out slower on small scenes

Highlights

Material shading

Anti-aliasing

Depth of field

Focal length 9.0, lens radius 0, 0.5 and 1.0

Lens radius 0.1, focal length 5, 8 and 15

glTF meshes and textures

Environment map

Tone mapping

Performance