Physically-Based Path Tracer
Overview
This path tracer was written as part of the computer graphics course at ETH Zurich. We were given some starting code but had to implement almost everything involving the light simulation. To find out more about what was included in the starter code, check out the course page here. Everything had to be implemented in C++. Scroll down to see more renders.
For my competition entry I implemented:
- Importance sampled environment emitter
- Homogeneous media, Henyey-Greenstein phase function and a volumetric MIS path tracer
- A more advanced thin-lens camera model including regular polygons as apertures and chromatic aberration
- Textures for specular, alpha, normal and albedo maps
- Translucency BSDF, which lets rays randomly pass through the backside with a diffuse lobe
- Directional light
As part of the course assignments, we had to implement:
- Different strategies to transform 2D random samples into other distributions or coordinates
- Area emitter sampling
- Multiple importance sampled unidirectional path tracing
- Microfacet BRDF and Dielectric BSDF
- Basic photon mapping