CUDA Real Time Ray Tracer
Real-time GPU-accelerated ray tracer capable of rendering full 3D scenes with reflective and refractive materials, soft shadows and depth of field.
C++CUDAOpenGlGLFW3
An exploration of physically-based rendering and GPU programming.
Features
- Physically-based rendering of full 3D scenes in real-time
- Reflective and refractive materials
- Soft shadows and depth of field
- Capable of rendering complex scenes at high framerates
Stack
Written in CUDA C++. The GPU implementation parallelises ray calculations across thousands of threads, with work batched by bounce depth to minimise thread divergence and keep performance consistent across complex scenes.
Implementation
Built as a feature-complete CPU ray tracer first, then ported to CUDA to parallelise per-pixel ray calculations across the GPU. Each frame is computed on the GPU and passed back to OpenGL for display in a GLFW window, giving real-time output rather than rendering to a static image file.
screenshots