Skip to content

Zydak/Vulkan-Path-Tracer

Repository files navigation

Vulkan-Path-Tracer

Physically based path tracer made in Vulkan. For ray tracing it utilizes Vulkan Ray-Tracing Pipeline. It uses energy conserving BSSRDF with Diffuse, Dielectric, Metallic and Glass lobes + volumes. Renders that you create can be easily saved as .png images. It also features post processing effects like bloom, tonemapping. It also uses Optix Denoiser for denoising renders.

Running

Windows Only

Building

Windows Only

  • Download Vulkan SDK.
  • Run git clone https://github.com/Zydak/Vulkan-Path-Tracer --recursive.
  • Go to Releases and download Shaderc.zip
  • Unzip and copy Shaderc libraries into Vulture/lib/shaderc/.
  • Run setup.bat in main directory.
  • Open generated solution in Visual Studio.

Gallery

Sponza

Bistro

DragonHead

OceanAjax

Mustang0

Volume

TeapotMarble TeapotTiled

Dogs

Caustics

Material Showcase

  • Metallic factor ranging from 0 to 1. Determines whether the surface is metallic or dielectric. metallic

  • Roughness factor on metallic surface ranging from 0 to 1. metalRoughness

  • Anisotropy factor on metallic surface with roughness 0.5 ranging from 0 to 1. Anisotropy-

  • Index of refraction (IOR) factor ranging from 1 to 3. Changes the strength of specular highlights on dielectric surfaces. specular

  • Roughness factor on dielectric surface ranging from 0 to 1. specRoughness

  • Specular Tint factor on dielectric surface ranging from 0 to 1. Gradually Tints the specular highlights to the surface color. specTint

  • Transparency factor ranging from 0 to 1. Determines whether the material is able to refract light rays or not. glass

  • Roughness factor on transparent surface ranging from 0 to 1. glassRoughness

  • Index of refraction (IOR) factor on transparent surface ranging from 1 to 2. Determines how much the path of light is bent during refraction. IOR

List Of Features

  • Energy Conserving BSSRDF.

NoCompensation Original

  • HDR Environment Maps
  • Environment map MIS
  • Complex Materials
  • Volumetric Scattering using delta tracking
  • Textures and Normal Maps
  • Editor
    • Loading your own scenes in .gltf .fbx and .obj format
    • Editing scene materials in runtime
    • Exporting renders into .PNG files
    • Saving and loading scenes
  • Shader hot reloading and caching
  • Post Processing
    • Bloom using Mip Maps
    • Exposure
    • Contrast
    • Brightness
    • Saturation
    • Vignette
    • Gamma
    • Temperature with Tint
    • Color Filter
    • Chromatic Aberration
    • 6 Tonemappers (Filmic, Hill Aces, Narkowicz Aces, Exposure Mapping, Uncharted 2, Reinchard Extended)
  • Anti Aliasing
  • Depth of Field effect with automatic focal length
  • Image Denoising using Nvidia Optix Denoiser
  • Camera controller made using quaternions

References

Papers Implemented

Models