Skip to content

Simulación Adaptativa de Iluminación Global

Universidad de Zaragoza, Zaragoza (Spain)
Final Degree Project 2016
Simulación Adaptativa de Iluminación Global

Note: the original thesis document is written in Spanish. This page summarizes its contents in English.

Abstract

Physically-based rendering is ultimately a problem of numerical integration: each pixel of a synthetic image is the value of a high-dimensional integral over light transport paths. The dominant practical solution — Monte Carlo path tracing — samples those paths randomly, which converges to the correct answer but at the cost of variance that appears as noise in the rendered image. Pixels in smooth regions receive many “wasted” samples while pixels with fine structure remain under-sampled at equal budget.

This bachelor’s thesis explores an adaptive quadrature alternative to Monte Carlo. Instead of sampling uniformly at random, it estimates the numerical error of each region of the integration domain and directs further samples toward the regions where that error is highest, so that the number of samples scales with the complexity of the local integrand rather than being fixed up-front.

Method

The method is built on the Path Integral formulation of the rendering equation, combined with multidimensional adaptive quadrature using Simpson’s and trapezoidal rules as a posteriori error estimators. Two integration strategies are studied:

Subdivisions are ranked by their estimated error in a priority queue, which steers the next sample to where it matters most. Two backing structures are compared: a classical binary heap (STL priority_queue) with O(log n) insert/pop but unbounded RAM growth, and a custom multi-bucket structure (FileQueue) that groups subdivisions by error level and pages them out to disk when the in-memory bucket limit is exceeded.

Implementation

The system is implemented in C++14 with Boost and the STL, compiled with Clang on Fedora and built with CMake. Each integration strategy is exposed as its own engineEngineQuadratureGlobal, EngineQuadraturePerpixel, EngineQuadratureImage — with ...File variants that swap the heap for the FileQueue. Engines build on an existing RecursiveRayTracer used for path-space sampling.

Results

Future Work

BibTeX

@article{Fabre:2016:TFG,
  author  = {Fabre, Javier and Muñoz Orbañanos, Adolfo},
  title   = {Simulación Adaptativa de Iluminación Global},
  year    = {2016},
}