SYCL Path Tracer

C++ & SYCL Monte Carlo Path Tracer

Path tracing engine written in C++. This project was initially written using SYCL. SYCL is a standard written by the Khronos Group that allows one C++ code to be ran on multiple devices including CPUs, GPUs and even FPGA accelerators. Unfortunately, I have been facing issues (discussions with Intel can be found here and here) with SYCL that lead me to reimplement it in pure C++ (the task was pretty much effortless as a SYCL code is already very close to pure C++).

This project has been superseded by my HIPRT-Path-Tracer written with the HIPRT GPU Ray Tracing API and largely expanded in functionalities.


Features

  • Direct lighting
  • Indirect lighting
  • Microfacet BRDF (Cook Torrance BRDF) : Roughness and metallic
  • Cook Torrance BRDF Importance Sampling
  • HDR Environment Map
  • Environment Map Importance Sampling
  • Multiple Importance Sampling
  • Tone mapping HDR (gamma and exposition)
  • Octree based BVH + 7 planes bounding volumes
  • Linear BVH adapted for GPU computations
  • Intel® Open Image Denoise integration

Github

This project is open-source on Github: SYCL Path Tracer