This project implemented a basic Monte Carlo path tracer that is capable of rendering global illumination of diffuse, glossy and specular reflections.
Features: stratified sampling of area lights; importance sampling scheme that evaluates direct and indirect illumination separately; parallel compute through multithreading. 3D scenes were created to test the renderer with surfaces of different reflective properties.


