path tracer
A simple path tracer supporting different materials e.g. diffuse lambertian, metal, glass, diffuse light etc. The acceleration structure used is a bounding volume hierarchy (BVH) that uses the surface area heuristic (SAH) to divide it's volumes. The code can be found on my github. The path tracer is using the architecture from the famous Ray Tracing in One Weekend tutorial. Other resources that were very helpfull were:
- Unity Toy Path Tracer (Path tracer by Renaud Bédard, the programmer of the game FEZ!)
- SORT (Simple Open-source Ray Tracer)
- Global Illumination in 99 lines of C++ (Seeing that a path tracer can be written in 99 lines made me less intimidated by the subject)
- Global Illumination and Path Tracing (Scratch a Pixel is great for starting in graphics)
- Inigo Quilez (many great practical techniques for raytracing, raymarching etc.)
- Physically Based Rendering: From Theory to Implementation (The pathtracing "bible")
Here are some rendered images: