The entire project is for Dartmouth CS187. For the whole course, instead of extending from existing ray tracer, we implemented a ray tracer from scratch. I implemented progressive photon mapping, bump mapping, microfacet theory, multi-threading and repeating UV in my final project. The following are some sample results and the final render for my project.
Path tracing(left) and progressive photon mapping(right)
Rough dielectric(left) with GGX and dielectric(right)
Bump mapping with different offset
Depth of field with small aperture(right) and big aperture(left)
Final render