Home

Awesome

Ray tracer sandbox in Vulkan

This project is an engine where you can create/test new shaders in real-time physically based ray tracing system. The main idea is that users can test their own integrators in predefined environment with assets like: meshes, materials, lights and textures. The Vulkan pipeline is abstracted in a shaders form and the only concern for a user is providing either their own scene description or using already existing one.

discord issues release closed Linux Windwos

Check out the discord #general for more info or discussions. The current development is available under project.

<p align="center"> <img src="https://github.com/Zielon/PBRVulkan/blob/readme-assets/gifs/bedroom.gif?raw=true" width=auto height=auto> </p>

Sandbox

As an example of creating your own shader please take a look at Ambient Occlusion or Path Tracer. Those files are automatically included in the hit shader. At this level you have many resources available to create your own implementation. For now, to make them available for the engine, you would need to add them in the same way I added aforementioned files.

Features

1) Ray tracing pipeline
    scene/assets description with:
      materials
      meshes
      lights (area, spherical)
    HDR
    path tracer integral
    Disney BRDF
2) Rasterizer pipeline     
    Phong-Blinn model
3) Compute shader pipeline 
    denoiser
    egde detection
    edge sharpner

How to run

  1. Download VulkanSDK and install it following the instuctions.
  2. Run windows_install.bat or sudo linux_install.sh script depending on the system to download all necessary libraries.
  3. git-lfs must be installed in order to fetch scenes repository.

C++17 is needed to compile the project.

Assets

The scene description and assets are adapted from GLSL-PathTracer project [4]. The scenes repository will be automatically cloned during the installation process.

PBRVulkan/Assets/PBRScenes/
    bedroom/
    coffee_cart/
    HDR/
    bedroom.scene
    coffee_cart.scene
    ...

References/Credits

[0] Vulkan Tutorial
[1] Vulkan Ray Tracing Tutorial
[2] PBR Book
[4] GLSL-PathTracer
[5] RayTracingInVulkan