Tracer icon indicating copy to clipboard operation
Tracer copied to clipboard

Ray Tracing on Metal / macOS

Lǐ - PBRT on Metal

This is simply a repository for my Ray Tracing code.

Requirement

RT_Metal requires MTLArgumentBuffersTier2 device, for example AMD dGPU & eGPU.

Not tested on Apple Silicon.

It may work on macOS 10.15. For compatibility, I am avoiding using new APIs added since macOS 11.

<!--

Features:

  • [ ] Metal Kernel
    • [ ] MPSRayIntersector & MPSSVGF
    • [ ] FidelityFX Super Resolution 2.0
    • [x] GPUSPPM by Toshiya Hachisuka
      • [x] Parallel Reduction
      • [x] Spatial Hash Grids
    • [x] Stackless BVH traversal on GPU
    • [x] Bindless resources
    • [x] ACES tone, Auto exposure
    • [x] pcg-random
    • [ ] Blue noise
  • [ ] Ray Tracing Gems
    • [x] A Fast and Robust Method for Avoiding Self-Intersection
  • [ ] Physically Based Rendering, Third Edition
    • [ ] Halton Sampler
    • [x] Sobol’ Sampler
    • [ ] BVH
      • [x] SAH, Parallel recursion
      • [ ] LBVHs, Morton Encoding
    • [x] Microfacet
      • [x] Beckmann
      • [x] TrowbridgeReitz
    • [ ] IEEE 754 float rounding error
    • [x] Multiple importance sampling
    • [ ] Ray Differential
    • [ ] Infinite Area Lights
    • [ ] Volume Rendering
      • [x] Homogeneous Medium
      • [x] Heterogeneous Medium
      • [ ] BSSRDF
    • [x] Stochastic Progressive Photon Mapping
    • [ ] Bidirectional Path Tracing
    • [ ] Metropolis Light Transport
    • [ ] Support pbrt-v3 file format

Other things to-do:

  • [ ] Basic GUI & Menu
  • [ ] Export as PNG file
  • [ ] Cancelable tasks
  • [x] Quaternion camera

References: