All Projects → harskish → fluctus

harskish / fluctus

Licence: MIT license
An interactive OpenCL wavefront path tracer

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
SWIG
194 projects

Projects that are alternatives of or similar to fluctus

LumillyRender
Monte Carlo path tracing implementation on Rust
Stars: ✭ 36 (-34.55%)
Mutual labels:  path-tracer, raytracing, pathtracing, path-tracing
Fall2021
Base repository for Dartmouth's CS87/287 (Fall 2021).
Stars: ✭ 43 (-21.82%)
Mutual labels:  rendering, global-illumination, raytracing, pathtracing
nerv pathtracer
a pathtracer with physically based rendering in mind
Stars: ✭ 27 (-50.91%)
Mutual labels:  raytracing, pathtracing, path-tracing
ray-tracer
A simple ray tracing engine
Stars: ✭ 27 (-50.91%)
Mutual labels:  raytracing, pathtracing, path-tracing
Ray
Small pathtracing library with GPU and CPU backends
Stars: ✭ 95 (+72.73%)
Mutual labels:  opencl, path-tracer, raytracing
Soul Engine
Physically based renderer and simulation engine for real-time applications.
Stars: ✭ 37 (-32.73%)
Mutual labels:  rendering, opencl, path-tracer
RayTracing
Realtime GPU Path tracer based on OpenCL and OpenGL
Stars: ✭ 120 (+118.18%)
Mutual labels:  opencl, raytracing, pathtracing
Yune
GPU based framework for writing Raytracers/Pathtracers. (Pronounced as "Yu-nay")
Stars: ✭ 64 (+16.36%)
Mutual labels:  rendering, opencl, path-tracer
monte-carlo-ray-tracer
Physically based renderer with Path Tracing and Photon Mapping.
Stars: ✭ 246 (+347.27%)
Mutual labels:  global-illumination, raytracing, pathtracing
pathtracer-webgl2
Path tracing render engine for the web. Both ray tracing for conventional 3d models and ray marching for fractals implemented. Built with WebGL 2 and Angular 2.
Stars: ✭ 45 (-18.18%)
Mutual labels:  rendering, raytracing, pathtracing
Nabla
OpenGL/OpenGL ES/Vulkan/CUDA/OptiX Modular Rendering Framework for PC/Linux/Android
Stars: ✭ 235 (+327.27%)
Mutual labels:  rendering, raytracing, path-tracing
CLUSEK-RT
Vulkan based C++ ray-tracing game engine.
Stars: ✭ 24 (-56.36%)
Mutual labels:  rendering, raytracing, pathtracing
Rustlight
physically-based rendering engine implemented with Rust.
Stars: ✭ 51 (-7.27%)
Mutual labels:  rendering, path-tracer
Gears Vk
Powerful low-level C++20 rendering framework for Vulkan 1.2, including Real-Time Ray Tracing (RTX) support, built atop Auto-Vk.
Stars: ✭ 71 (+29.09%)
Mutual labels:  rendering, raytracing
Monte carlo ray tracer
A program with an implemented Monte Carlo Ray Tracer algorithm for global illumination of a virtual 3D scene.
Stars: ✭ 90 (+63.64%)
Mutual labels:  rendering, raytracing
Raytracer
a simple RayTracer based on the Monte Carlo Path Tracing
Stars: ✭ 14 (-74.55%)
Mutual labels:  rendering, raytracing
Flycube
Graphics API wrapper is written in C++ on top of Directx 12 and Vulkan. Provides main features including ray tracing.
Stars: ✭ 78 (+41.82%)
Mutual labels:  rendering, raytracing
Yocto Gl
Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics
Stars: ✭ 1,391 (+2429.09%)
Mutual labels:  rendering, path-tracer
Tinykaboom
A brief computer graphics / rendering course
Stars: ✭ 2,077 (+3676.36%)
Mutual labels:  rendering, raytracing
Ssrt
Real-time indirect diffuse illuminaton using screen-space information for Unity.
Stars: ✭ 176 (+220%)
Mutual labels:  rendering, raytracing

Fluctus

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

Key Action
W / A / S / D Move camera (up/down with R/F)
Mouse left Look around
Mouse right Pick DoF focal depth (after setting aperture size)
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
F6 Toggle OptiX Denoiser (if built)
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 microkernel/wavefront
8 / 9 Change area light size
, / . Change FOV

Build

See the build instructions.

Gallery

Dining Room

San Miguel

Classroom

Spaceship

DOF

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].