Monte Carlo Path Tracer

Year
'24
Client
Service
Graphics Programming
For Penn's graduate level course CIS 5610 aka Advanced Rendering, I developed a full Monte Carlo path tracer engine using C++ and GLSL. The resource https://pbr-book.org/ provided a contextual basis for the project.
© Monte Carlo Path Tracer




Features
This engine implements Multiple Importance Sampling, Global Illumination, Area, Point, and Environment Lights, Dielectric and Transmissive Materials, and Custom Scene Creation using JSON.
This project handles direct and indirect rays as well as providing tools to support a variety of materials as well as lighting conditions.
Technical Details
Lighting integrators (four variants)
Naive
Direct
Direct with multiple importance sampling (MIS)
Full lighting with global illumination
Multiple BxDFs (Bidirectional scattering distribution function)
Lambertian BRDF
Microfacet BSDF
Specular BRDF/BTDF
Matte material
Multiple light types
Area
Point
Spot
Environment
Papaya USD Asset Browser
Unreal-Inspired Real-Time Renderer