Skip to content

julcst/nbounce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nBounce

This is a GPU-accelerated path tracer, fully written in Rust using wgpu, developed for my bachelor thesis. The primary goal is to implement and compare different approaches to Neural Radiance Caching [4] in order to accelerate real-time path tracing.

Thanks to wgpu, this implementation is fully cross-platform, supporting Metal on macOS and Vulkan on Windows and Linux. However, due to the advanced GPU features required (some of which are not yet exposed by WebGPU) this will not natively run in the browser via WebAssembly (WASM). Future additions to the WebGPU standard might change this limitation.

Planned Features

  • Software ray tracing using SAH-optimized BVH trees and Möller-Trumbore intersection tests
  • Hardware-accelerated ray tracing
  • Random Quasi-Monte Carlo sampling with a precomputed Owen-scrambled Sobol sequence [1] and per-pixel random Cranley-Patterson rotations using sobol_burley
  • Unbiased Russian Roulette path termination based on path length and perceived throughput luminance
  • Neural Radiance Caching [4]
  • Support for environment lighting and emissive materials
  • Texture and normal map support using ddsfile
  • GLTF parsing (requires precomputed tangents and normals) using gltf
  • Support for transmissive materials
  • Basic Disney BRDF: Burley Diffuse + Trowbridge-Reitz Specular PBR materials [2]
  • Importance sampling of the Disney BRDF using preintegrated diffuse and specular textures
  • Importance sampling of the Visible Normal Distribution Function (VNDF) [3]
  • Importance sampling of environment maps
  • HDR output on macOS
  • Timer queries for detailed performance statistics
  • GPU-side neural networks using f16 matrix multiplication

Features Not Planned (Yet)

  • MikkTSpace tangent generation
  • Advanced Disney BSDF: Subsurface scattering, sheen, clearcoat
  • Implicit light sources: Directional, spot, point
  • Animation support
  • Neural supersampling
  • Neural denoising (OpenImageDenoise)
  • Depth of field
  • Tensor core utilization
  • Volumetrics
  • Numerically robust triangle intersection tests

References

[1] B. Burley, “Practical Hash-based Owen Scrambling,” vol. 9, no. 4, 2020.

[2] B. Burley, “Physically Based Shading at Disney”.

[3] E. Heitz, “Sampling the GGX Distribution of Visible Normals,” vol. 7, no. 4, 2018.

[4] T. Müller, F. Rousselle, J. Novák, and A. Keller, “Real-time neural radiance caching for path tracing,” ACM Trans. Graph., vol. 40, no. 4, pp. 1–16, Aug. 2021, doi: 10.1145/3450626.3459812.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published