Fluctus

December 26, 2021 ยท View on GitHub

OpenCL wavefront path tracer

Country Kitchen

Features

  • Physically based renderer
    • PBRT and OBJ scenefiles
    • Lambertian, glossy, ideal specular, and microfacet (GGX) BSDFs
    • Multiple importance sampled environment maps (alias method)
  • Wavefront path tracing at interactive framerates
    • Two implementations, one tuned for latency and the other for throughput
    • Optimized structure of arrays data layout
    • Efficient BVH with spatial splits
  • OptiX AI denoiser (on supported NVIDIA hardware)
    • Requires OptiX 7, CUDA 10.1+, driver 435.80+
  • Supports a wide variety of systems
    • Cross-platform (Windows, MacOS, Linux)
    • NVIDIA, AMD and Intel GPUs and CPUs
    • CPU debugging with Intel's OpenCL SDK
  • Nanogui-based user interface
    • Uses only modern OpenGL (3.3+)
  • Uses CLT for convenience and robustness

Usage

Rename settings_default.json to settings.json. Modify to set default OpenCL device, render scale, window dimensions etc.

Controls

KeyAction
W / A / S / DMove camera (up/down with R/F)
Mouse leftLook around
Mouse rightPick DoF focal depth (after setting aperture size)
Scroll Up / DownAdjust movement speed
SpacePlace area light
F1Reset camera
F2Save camera/area light state
F3Load saved state
F5Export image
F6Toggle OptiX Denoiser (if built)
HToggle light sources (environment/area/both)
I / KAdjust max bounces
Z / XAdjust environment map emission
LOpen scene selector
MSwitch sampling mode
UToggle UI
Page Up / DownAdjust area light emission
1-5Select scene 1-5 (if set in settings.json)
7Switch metween microkernel/wavefront
8 / 9Change area light size
, / .Change FOV

Build

See the build instructions.

Dining Room

San Miguel

Classroom

Spaceship

DOF

License

Source code and resources provided under the MIT LICENSE, unless otherwise specified.