Not so tiny path tracer
- Linux gcc-7 /clang-7 / gcc-10 / clang-10
- Windows MSVC 2019
Note: This program is being modified to meet the requirements of the CSE168 course by Prof Ravi Ramamoorthi.
❓ : partial, may not work, broken because of code evolution
✔️ : Complete
❌ : Not implemented but on the todolist
- ❓ Debugger
- Integrator
- ✔️ Path tracing(Multiple Importance sampling, Russian Roulette and Shadow Ray)
- ✔️ Direct Lighting
- ✔️ Blinn-Phong Integrator(like that in OpenGL)
- ❌ Photon Mapping
- Material
- ✔️ CookTorrance(with GGX importance sampling)
- ✔️ Blinn-Phong(with importance sampling)
- ✔️ Glass
- ✔️ Dielectric
- ✔️ lambertian(with cosine weighted sampling)
- Accelerator
- ✔️ Naive BVH
- ❌ SAH BVH
- ✔️ linear list(just for testing)
- Sampler
- ✔️ Naive sampler(std::mt19937)
- ✔️ Halton sequence(no scramble)
- ❌ Sobel sequence
- Camera
- ✔️ Naive camera
- ❌ Motion blur
- ❌ Depth of field
- Shape
- ✔️ Triangle
- ✔️ Quad
- ✔️ Sphere
- Texture
- ✔️ Constant Texture
- ✔️ Checker Texture
- ❌ loading image texture(It is a little trivial. Some work has been done for it but there is still a lot to do)
- Parser
- ✔️ TOML parser(see cornel_box.toml)
- ✔️ Ravi parser(the format Prof Ravi defines in CSE168)
- Math
- ✔️ Vec3,Point3,Mat4
- ✔️ AABB
- ✔️ Transform