Skip to content

jeweg/vulkan-rays

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulkan-Rays

Progressive path tracing in Vulkan compute.

The Vulkan parts implement a trivial graphics pipeline that just displays a float image. A compute shader paints the image by path tracing a virtual scene.

The path tracing implementation loosely follows Peter Shirley's Raytracing in One Weekend series (at the moment less loosely) and Alan Wolfe's tutorial series. So far, it has

  • Probabilistic path tracing with diffusion, reflection, and transmission:
    • R2 low discrepancy sequence for sub-pixel variation of the primary rays (i.e., anti-aliasing)
    • Randomly chosen diffuse, specular, transmissive rays
    • Russian roulette and absorption-threshold-based ray termination
  • Primitives: spheres, parametric checkered quads (because that seems mandatory for raytracer test images)
  • Rendering into sRGB target for proper gamma correction
  • Reinhard tone mapping and ACES filmic tone mapping
  • Simple upright orbit camera

Libraries used: glm, GLFW, Dear ImGui, Vulkan Memory Allocator

About

Real-time path tracing using Vulkan compute.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published