CUDA Path Tracer with Denoiser: GPU Based Renderer
The path tracer uses CUDA to render image parallelly, based on Monte Carlo path tracing technique to render a scene and denoise the originally rendered images with the A-trous wavelet filter.
Features
- Ray sorting by material
- Ideal Diffuse Shading and Perfect Specular Reflection
- Stream Compaction and Cache first bounce
- Refraction with Frensel effects using Schlick’s approximation.
- Physically-based depth-of-field
- Stochastic Sampled Antialiasing
- Arbitrary mesh loading and rendering glTF files with toggleable bounding volume intersection culling
- Better hemisphere sampling methods
- Direct lighting
- Motion blur by averaging samples at different times in the animation
- Denoise with A-trous wavelet filter
Rendered Images
- Kirby
- Lion
- Spitfire
- Galleon
- Goku
- Texture mapping and bump mapping
- Image with Denoiser
References
- Matt Pharr, Wenzel Jakob, and Greg Humphreys. Physically Based Rendering: From Theory To Implementation
- Header only C++ tiny glTF library
- Edge-Avoiding A-Trous Wavelet Transform for fast Global Illumination Filtering
- ocornut/imgui - https://github.com/ocornut/imgui
- Gaussian filter - https://en.wikipedia.org/wiki/Gaussian_blur