This is a CPU-only, unidirectional path tracer. Most of the shading code is unoptimized for the sake of clarity and debugging.
- Unidirectional path tracer with importance sampling and russian roulette
- Next event estimation (direct light sampling)
- Multiple importance sampling for next event estimation
- Physically-based BSDF based on the Disney BSDF
- Area lights
- Thin lense camera model
- Multithreaded rendering with tiles
- Spheres and triangle meshes
- Bounding volume hierarchy (BVH) with SAH
- JSON scene description file
- Unit tests for most things incl. chi-square tests for BxDF sampling, and (weak) white furnace tests for BxDFs
- Volume rendering
- The full Disney BSSDRF
- Better sampling (e.g. blue noise)
- Directional lights (for e.g. sun light)
- Physically Based Rendering: From Theory To Implementation, Matt Pharr, Wenzel Jakob, and Greg Humphreys
- Background: Physics and Math of Shading (2012), Naty Hoffman
- Some Thoughts on the Fresnel Term (2020), Naty Hoffman
- Physically Based Shading at Disney (2012), Brent Burley
- Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering (2015), Brent Burley
- Pixar's Foundation for Materials (2017), Christophe Hery et al.
- Real Shading in Unreal Engine 4 (2013), Brian Karis
- Moving Frostbite to Physically Based Rendering 3.0 (2015), Sebastien Lagarde and Charles de Rousiers
- Real-time Rendering - 4th Edition, Tomas Akenine-Möller, Eric Haines and Naty Hoffman
- Reflections and Refractions in Ray Tracing (2006), Bram de Greve
- Microfacet Models for Refraction through Rough Surfaces (2007), Bruce Walter et al.
- Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs (2014), Eric Heitz
- Sampling the GGX Distribution of Visible Normals (2018), Eric Heitz
- std_image_write.h : v1.15 - public domain image writer - GitHub link
- catch.hpp : v2.13.3 - BSL-1.0 License - GitHub link
- json.hpp : v3.9.1 - MIT License - GitHub link
- tiny_obj_loader.h : v1.0.6 - MIT License - GitHub link