Realtime GPU Path Tracing engine based on OpenCL and OpenGL
Features
- Unidirectional wavefront path tracer done entirely on GPU using compute shaders
- OpenCL backend
- OpenGL backend (WIP)
- Hybrid path tracing (rasterization of the primary visibility) in OpenGL mode
- Lambert diffuse, GGX reflection BRDF
- Explicit point, directional light sampling
- Simple temporal reprojection filter
- Depth, normals, albedo, motion vectors AOV generation
- Hot kernel reloading
- OpenCL/OpenGL interop for presenting the image
Building
- Clone the repository
git clone --recursive https://github.com/AlexanderVeselov/RayTracing.git
- Generate a solution using CMake
- Open the solution and build
RayTracingApp
project
Running
- Run
RayTracingApp
executable - You can provide the following optional arguments
-w
,-h
window width and height--scene <path>
path to scene to be loaded--scale <scale>
scale of the imported scene--flip_yz 0/1
flip Y and Z axis of the scene (some scenes have Y up and some have Z up)--opengl 0/1
use OpenGL-only mode