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:

  1. C#
  2. C++
  3. rust
  4. OpenGL/C++

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