Path Tracer

A physically-based renderer implementing the path tracing algorithm from scratch in C++. Built for Brown CS 224 (Computer Graphics). Solves the rendering equation via Monte Carlo sampling, producing soft shadows, color bleeding, caustics, mirror reflections, and glass refraction.
← Back to Projects

Rendered Outputs

Cornell box scenes rendered with the path tracer. Click any image to enlarge.

Cornell box scenes · area lighting · Monte Carlo path tracing

Features

BRDFs

Diffuse, glossy specular, perfect mirror, and dielectric refraction with Fresnel reflection.

Soft Shadows

Area light source sampling produces physically accurate soft shadow penumbrae.

Global Illumination

Indirect illumination with color bleeding and caustics via recursive bounce rays.

Event Splitting

Separate accumulation of direct and indirect lighting contributions at each intersection.

Russian Roulette

Probabilistic path termination for unbiased estimation with bounded computation.

Tone Mapping

Extended Reinhard operator converts HDR radiance values to displayable LDR images.