/RayTracingInDotNet

Path tracing demos using Vulkan and Silk.Net

Primary LanguageC#BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Ray Tracing In Dot Net

Ray Tracing In Dot Net is a real-time path tracing demo that performs hardware ray tracing via Vulkan's ray tracing extension. It is a port of Ray Tracing In Vulkan to .NET and C# using Silk.Net, with some added features.

Added Features

  • Dynamic scenes (allow update transformations to models, rebuilding TLAS.)
  • Added "Cascading Mirrors" demo scene.
  • Added "Physics" demo scene using Bepuphysics v2.
  • Toggles for full screen mode and vsync.

Requirements

  • A GPU with ray tracing acceleration cores (NVIDIA RTX 2000 series / AMD RX 6000 series or better GPU. Older GPUs may work if the vender has enabled fallback shader-based ray tracing, albeit much more slowly.)

  • Up-to-date display drivers for your GPU.

Gallery

Building

You will need the Vulkan SDK from the official site.

Todo

  • Needs a good denoiser (or any denoiser, for that matter.) This is especially apparent in scenes that are never stable, thus can't accumulate rays (the Physics scene.)
  • Optimize BLAS meshes by sharing identical ones across TLAS instances.
  • Add more materials / make them more flexible.
  • Allow a user to load external model files.
  • Modifying a shader file alone will not cause a recompile by Visual Studio; currently a rebuild must be manually forced.