Sampling Strategies for Monte Carlo Path Tracing
This research investigates the efficiency of different sampling strategies for mesh area lights in Monte Carlo path tracing, with a focus on hierarchical and visibility-aware techniques. The study employs a custom CPU ray tracer (Prometheus) built with Intel Embree, comparing four sampling approaches across scenes of varying complexity.
Physically-based rendering using stochastic sampling to approximate the rendering equation.
Light BVH with flux-based importance for efficient sample distribution across mesh lights.
Learned visibility probabilities combined with Multiple Importance Sampling for optimal results.
Four distinct sampling strategies were implemented, each representing a different point on the complexity-efficiency spectrum.
Baseline random sampling with equal probability
Solid angle weighted sampling
BVH-based importance traversal
Learned visibility with multiple importance sampling
The simplest approach where each point on the light surface has equal probability of being selected. Triangle selection is performed proportionally to surface area using a precomputed cumulative distribution function (CDF).
p_A = 1 / AVisual quality measured using Mean Squared Error (MSE) against ground truth images at 20,000 SPP. Performance measured as render time in seconds.

Baseline scenario with a single rectangular area light. All strategies converge identically, confirming implementation correctness.




| Strategy | 1 SPP MSE | 16 SPP MSE | 256 SPP MSE | 256 SPP Time |
|---|---|---|---|---|
| Uniform | 1.47E-01 | 1.92E-02 | 1.34E-03 | 0.611s |
| Area-Importance | 1.56E-01 | 1.69E-02 | 1.19E-03 | 2.905s |
| Hierarchical Flux | 1.52E-01 | 1.76E-02 | 1.24E-03 | 2.599s |
| Visibility-Aware MIS | 1.53E-01 | 1.76E-02 | 1.25E-03 | 4.074s |

Lower MSE indicates better convergence to ground truth.

Hierarchical methods show overhead in simple scenes but scale better with complexity.
Provides the best overall trade-off between variance reduction and computational efficiency for mesh area lights.
Despite theoretical advantages, O(n) solid angle computation makes it impractical for production use.
Significant improvements in high-occlusion scenarios where geometric blocking wastes samples.
Optimal strategy selection depends on scene characteristics—simple scenes favor low-overhead methods.
High-performance ray tracing
SAOH-based tree construction
Flux-weighted traversal
Spatial hash grid learning
Balance heuristic weighting
Mann-Whitney U tests
Modern parallel execution
This project pushed me into territory I had never explored before—solid angles, spherical triangles, Monte Carlo integration, and probability density functions. These were not just abstract concepts to memorize, but tools I had to actually implement and debug in a working ray tracer.
This research confirmed that graphics programming is what I want to pursue further. The combination of mathematics, programming, and visual results is exactly what I find most engaging in computer science.