CUDA-Accelerated Neural Pathtracing

Shashank Anand, Yongye Zhu, Yifei Dai, Seyoung Samuel Kim
University of California, Berkeley
ReSTIR GI raw 1200x1200
ReSTIR GI denoised 1200x1200

24fps with 400 images for CornellChess

ReSTIR GI raw 1200x1200
ReSTIR GI denoised 1200x1200

24fps with 400 images for CornellChess with brighter light (see mirror reflections)

ReSTIR GI raw 1200x1200
ReSTIR GI denoised 1200x1200

24fps with 400 images for raw Chessboard

Naive 1spp raw 1200x1200 (200ms)
Naive 1spp denoised 1200x1200
ReSTIR GI raw 1200x1200 (240ms)
ReSTIR GI denoised 1200x1200
Naive 1spp raw 400x400
Naive 1spp denoised 400x400
ReSTIR GI raw 400x400
ReSTIR GI denoised 400x400

CornellChess with Naive method and RsSTIR GI

Abstract

We present a fully-featured, CUDA-accelerated, one-sample-per-pixel path tracer that combines ReSTIR GI's spatio-temporal reservoir resampling with OIDN GPU-accelerated denoising to generate stable, noise-free indirect illumination and reflections in complex glTF scenes. We implement a lightweight GLTF loader, and support the complete base GLTF feature set, in addition to a number of extensions. We utilize the PBR rendering model, supporting textures, normal maps, roughness maps, metallic maps, and emission maps. We also support rendering multiple frames at different camera angles in one go, taking full advantage of the temporal resampling step. On an RTX 2000 GPU, we render a single 400x400 frame of a scene with 1.5 million primitives simulating 10 bounces of light, in 30ms, producing ≈ 33 frames per second. We render a high fidelity 1200x1200 frame in approximately 200ms, achieving near-realistic quality.

Member Contributions

Shashank Anand

  • Implemented ReSTIR-GI
  • Redesigned and rewrote codebase for CUDA support
  • Implemented CUDA versions of naive and ReSTIR-GI pathtracing.
  • glTF PBR rendering: advanced BSDFs, texture (color, normal, orm, emission) support, multiple importance sampling etc.
  • Debugging glTF issues with Yongye. Debugging initial Collada issues with Yifei.
  • Optimizations, fp32 support, etc.

Yongye Zhu

  • Implementing glTF model support.
  • Implementing parametrized multiple frame generation and camera movement inside pathtracer.
  • Perform global vertices array optimization.

Yifei Dai

  • Investigated glTF asset export support in Blender.
  • Worked together with Shashank to debug Collada parser issues.

Seyoung Samuel Kim

  • Implemented advanced BSDF support (mirror, microfacet, refraction and glass) in Collada to render hw3 test .dae files.
  • Updated the integrator and added a single direct‑light sample after specular bounces to remove NaNs and fireflies. Tuned pathtracer params for cleaner Collada renders.