Tracer
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