Skip to content

Physically based ray tracing / path tracing with CUDA. Real time rendering with Vulkan.

License

Notifications You must be signed in to change notification settings

wangkepfe/Real-Time-Ray-Tracing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-time Ray Tracing

  • Physically based ray tracing / path tracing.
  • GPU Compute workload implemented in CUDA.
  • Real time rendering framework implemented with Vulkan.

Physically based rendering

  • Monte Carlo uni-directional path tracing
  • Surface BSDF models
  • Rayleigh-Mie sky model
  • Local light source

Acceleration

Variance reducing

  • Low-discrepancy blue noise sampler
  • Multiple importance sampling

Scene traversal

  • LBVH
    • Two level BVH, each level with limited element count for better kernel efficiency
    • Triangle list -> AABB, morton codes, scene AABB
    • Radix sort -> Sorted morton codes, leaf reorder indices
    • LBVH build
    • BVH traversal using stack

Denoising

  • SVGF `Atrous spatial + temporal filter

Optimizations

  • Adaptive sampling/filtering with image noise level estimation
  • Dynamic resolution

Post-processing

  • Eye-adaptive histogram-based auto exposure
  • Bloom effect
  • Lens flare
  • Tone mapping
  • Sharpening

Prerequisites

  • Windows 10 OS
  • cmake 3.10
  • CUDA
  • Vulkan
  • Git submodules
    • git clone --recurse-submodules
    • git submodule update --init --recursive
  • Please note that it may have conflict with assimp NOMINMAX define

References

About

Physically based ray tracing / path tracing with CUDA. Real time rendering with Vulkan.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published