RaphaelK12 / PBRVulkan

Vulkan Real-time Path Tracer Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ray tracer sandbox in Vulkan

Vulkan real-time path tracer engine

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.

Check out discord #general for more info or help.

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.

How to run

  1. Download VulkanSDK and place it in C:/VulkanSDK/x.x.x.x/.
  2. Run install.bat script to download all necessary libraries.
  3. For shaders compliation you will need python and glslc available form the shell level. glslc can be found for instance in C:/VulkanSDK/x.x.x.x/Bin32/glslc.exe.

Environment variables

Add vulkan path C:/VulkanSDK/x.x.x.x/Bin32 to the Path variable
System variable needed for the project

  1. VULKAN_SDK
  2. VK_SDK_PATH

C++17 is needed to compile the project.

Assets

The scene description and assets are taken from GLSL-PathTracer project [4]. The whole dataset can be downloaded from link.

Download the assets folder and place it in PBRVulkan/Assets/Scenes/. The folder structure has to be as follows:

PBRVulkan/Assets/Scenes/
    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

Demo

About

Vulkan Real-time Path Tracer Engine

License:BSD 2-Clause "Simplified" License


Languages

Language:C++ 90.0%Language:GLSL 7.3%Language:C 2.3%Language:Python 0.3%Language:Batchfile 0.1%