As an advanced computer graphics course project, I wrote a Monte Carlo path tracer in C++. This path tracer implements:

- Diffuse, Glossy, ideal specular and Fresnel refractive BSDFs

- Global illumination with direct and indirect components

- Importance sampling for Lambertian and Phong reflections

- Russian roulette path termination

- Image based lighting support

Code available on GitHub upon request.