Tracer
Tracer is a set of Monte Carlo Ray Tracing programs that I sometimes work to better understand raytracing concepts.
There’s multiple versions of it - to the point where I may just create a new ‘Tracer’ in a new language for fun.
Different Version of Tracer with varying degrees of completeness:
TracerGL is the most advanced Tracer, while the tracer-cpp is the one that’s the one I’m actively working on.
Tracer is completely based on Peter Shirley’s Raytracing in One Weekend series of mini-books. I haven’t yet been able to finish everything unfortunately. But here’s to the future!
Features:
Ray-Shape interactions
- Sphere
- Axis Aligned Planes
- Axis Aligned Cuboid
- Triangles
Acceleration Structures
- Bounding Volume Hierarchy
- KD Trees
- Binary Space Partition
- Octrees
Noise Reduction Measures
- Blue Noise Sampling
- Post-process Denoising
Shaders
- Lambertian
- Dielectric
- Metallic
- Isotropic Volumes
- Emissive
- Non-isotropic volumes
- Mix shaders
- BSDF to replace all