Skip to content

Mesh Area Lights

Sampling Strategies for Monte Carlo Path Tracing

Graduation Work 2025-2026Howest University

Project Overview

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.

Monte Carlo Integration

Physically-based rendering using stochastic sampling to approximate the rendering equation.

Hierarchical Sampling

Light BVH with flux-based importance for efficient sample distribution across mesh lights.

Visibility-Aware MIS

Learned visibility probabilities combined with Multiple Importance Sampling for optimal results.

Sampling Strategies

Four distinct sampling strategies were implemented, each representing a different point on the complexity-efficiency spectrum.

🎲

Uniform Sampling

Baseline random sampling with equal probability

📐

Area-Importance

Solid angle weighted sampling

🌳

Hierarchical Flux

BVH-based importance traversal

👁️

Visibility-Aware MIS

Learned visibility with multiple importance sampling

Uniform 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 / A

Experimental Results

Visual quality measured using Mean Squared Error (MSE) against ground truth images at 20,000 SPP. Performance measured as render time in seconds.

Quad Scene
Bunny Scene
Flux-Stress Scene
Occlusion-Stress Scene

Ground Truth (20,000 SPP)

Quad Scene ground truth

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

Strategy Comparison at 32 SPP

Uniform

Uniform

MSE9.56E-03
Time0.14s
Area-Importance

Area-Importance

MSE8.45E-03
Time0.48s
Hierarchical Flux

Hierarchical Flux

MSE8.81E-03
Time0.42s
Visibility-Aware MIS

Visibility-Aware MIS

MSE8.80E-03
Time0.58s

Detailed Results

Strategy1 SPP MSE16 SPP MSE256 SPP MSE256 SPP Time
Uniform1.47E-011.92E-021.34E-030.611s
Area-Importance1.56E-011.69E-021.19E-032.905s
Hierarchical Flux1.52E-011.76E-021.24E-032.599s
Visibility-Aware MIS1.53E-011.76E-021.25E-034.074s

Convergence Analysis

MSE vs. Samples per Pixel

MSE vs SPP chart

Lower MSE indicates better convergence to ground truth.

Render Time vs. Samples per Pixel

Render time vs SPP chart

Hierarchical methods show overhead in simple scenes but scale better with complexity.

Key Findings

01

Hierarchical Flux Sampling

Provides the best overall trade-off between variance reduction and computational efficiency for mesh area lights.

02

Area-Importance Limitation

Despite theoretical advantages, O(n) solid angle computation makes it impractical for production use.

03

Visibility-Aware Benefits

Significant improvements in high-occlusion scenarios where geometric blocking wastes samples.

04

Scene Complexity Matters

Optimal strategy selection depends on scene characteristics—simple scenes favor low-overhead methods.

Technical Implementation

Intel Embree 4

High-performance ray tracing

🌳

Light BVH

SAOH-based tree construction

🎯

Importance Sampling

Flux-weighted traversal

👁️

Visibility Cache

Spatial hash grid learning

⚖️

MIS Framework

Balance heuristic weighting

📊

Statistical Validation

Mann-Whitney U tests

🔢

C++20

Modern parallel execution

The Journey

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.

Technical Challenges Overcome

  • Implementing van Oosterom and Strackee's solid angle formula with numerical stability
  • Building a Light BVH with Surface Area Orientation Heuristic (SAOH)
  • Debugging Monte Carlo estimators where errors produce black screens or noise
  • Integrating visibility learning with stochastic tree traversal
  • Computing PDFs for MIS by reconstructing tree traversal paths

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.

Designed and built by Ivans Minajevs.