Skip to content
forked from harskish/fluctus

An interactive OpenCL wavefront path tracer

License

Notifications You must be signed in to change notification settings

swq0553/fluctus

 
 

Repository files navigation

Fluctus

OpenCL wavefront path tracer

Country Kitchen

Features

  • Physically based renderer
    • OBJ + MTL scenefiles
    • Lambertian, glossy, ideal specular, and rough specular (GGX) BSDFs
    • Multiple importance sampled environment maps (alias method)
  • Wavefront path tracing at interactive framerates
    • Optimized structure of arrays data layout
    • Efficient BVH with spatial splits
  • OptiX AI denoiser (on supported NVIDIA hardware)
  • 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+)
    • Drag and drop scene files and environment maps
  • Custom kernel class with several convenience features
    • Kernel arguments set by name (not by idx)
    • Supports conservative recompilation when preprocessor definitions change
    • Kernel binaries cached for massive speedup

Usage

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

Controls

Key Action
W / A / S / D Move camera (up/down with R/F)
Mouse left Look around
Scroll Up / Down Adjust movement speed
Space Place area light
F1 Reset camera
F2 Save camera/area light state
F3 Load saved state
F5 Export image
H Toggle light sources (environment/area/both)
I / K Adjust max bounces
Z / X Adjust environment map emission
L Open scene selector
M Switch sampling mode
U Toggle UI
Page Up / Down Adjust area light emission
1-5 Select scene 1-5 (if set in settings.json)
7 Switch metween micro-/megakernel
8 / 9 Change area light size
, / . Change FOV

Build

See the build instructions.

License

See the LICENSE file for license rights and limitations (MIT).

About

An interactive OpenCL wavefront path tracer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 70.1%
  • C 28.8%
  • Other 1.1%