GPU Path Tracing

Spectral volumetric path tracing using Vulkan

Vulkan Volumetric Path Tracer

Motivation

From an online recommendation, I recently discovered a fantastic Vulkan resource for beginners vk_mini_path_tracer. It stands out for its clear explanations and user-friendly approach. Highly recommended for anyone diving into Vulkan.

Description

  • Load custom extensions like VK_KHR_ray_query and VK_KHR_acceleration_structure
  • Allocate buffers to be used in a shader
  • Load a custom model
  • Use BLAS and TLAS for a custom model
  • Create a compute pipeline
  • Synchronize properly the pipeline and submit it through the command buffer using a pipeline barrier.
  • Write back the data in a file

Results

With 2056 samples and a maximum bounce rate of 32, I render the images in the gallery in less than 1 second using an RTX 4070 Laptop.

Contributions

  • Create a blender scene with a way to add custom attributes and save them into a ‘.npy’.
  • Add a way to load material information to the shader stage.
  • Add different materials such as light, glossy reflection, and more.
  • Implement a volumetric path tracer based on a previous course using
    • Free-path Sampling
    • Henyey-Greenstein Phase Function
    • Spectral Sampling

Credits/Resources

source

vk_mini_path_tracer