320 likes | 457 Views
A Theory of Monte Carlo Visibility Sampling. Ravi Ramamoorthi UC Berkeley John Anderson Pixar (now at Google) Mark Meyer Pixar Derek Nowrouzezahrai Disney Research Zurich University of Montreal. Motivation.
E N D
A Theory of Monte Carlo Visibility Sampling Ravi Ramamoorthi UC Berkeley John Anderson Pixar (now at Google) Mark Meyer Pixar Derek Nowrouzezahrai Disney Research Zurich University of Montreal
Motivation • Soft shadows critical in high quality rendering • Monte Carlo sampling of visibility most common • Which (non-adaptive) sampling patterns are better? • Theory of Monte Carlo visibility sampling • Focus on (binary) visibility only; not general rendering
Monte Carlo Soft Shadows Light Pixel
Experiment: Sampling Strategies circle light uniform jitter RMS 6.6%
Experiment: Sampling Strategies circle light stratified RMS 8.3% Circle
Experiment: Sampling Strategies square light uniform jitter RMS 13.4%
Experiment: Sampling Strategies square light stratified RMS 10.4%
Contributions • Theory of Visibility Sampling for Linear Lights • Uniform Jitter Sampling • Lowest error at center of stratum (uniform sampling) • Can avoid banding, keep low error with uniform jitter • 2D Pixel-Light Fourier Analysis • Planar Area Lights
Previous Work • Early MC Sampling [Cook 86, Mitchell 87,96, HK 94] • Empirical Study Linear Lights [Ouellette & Fiume 01] • Adaptive Sampling [Mitchell 91, Guo98] • Adaptive Filtering [Hachisuka 08, …, this session] • Shadow Coherence [Agrawala et al. 00, Egan et al. 11] • Can leverage our approach • Signal Processing and Frequency Analysis • Space-Angle [Durand et al. 05] • Sheared Visibility Spectrum [Egan et al. 11] • Fourier Analysis of MC [Ouellete & Fiume 01, Durand 11]
Linear Lights: Discontinuities Light Blocker Pixel 1 0 Discontinuity Visibility Single Discontinuity: Heaviside Function Two Discontinuities: Boxcar Function Many Discontinuities: Many Box Functions
Single Discontinuity: Uniform Sampling • Error of Uniform Sampling • Error depends only on stratum of discontinuity • Error depends only on discontinuity location • Worst-Case, Variance (N = samples) • Depends only on sample placement in stratum Visibility at Pixel Uniform Sampling Absolute Error
Single Discontinuity: Errors • Uniform Sampling is optimal (but bands, bias) • Reduces variance by factor of 2 vs. stratified • Benefits of uniform without banding? • Stratified best unbiased method for 1 discontinuity, but…
Two Discontinuities: Boxcar 1 • Assume discontinuities in different strata • For very complex visibility, stratification not useful anyway Visibility 0 Strata 1 V 0 Ground truth net visibility = 0.75 + 0.75 = 1.5 Uniform Sampling:net visibility = 1+1 = 2, biased Stratified Sampling: net vis 00 / 01 / 10 / 11 = 0,1,2, high variance Uniform Jitter:net vis00 / 01 / 10 / 11 = 0,1,2, low variance
Two Discontinuities: Errors • Uniform Jitter exploits correlation of discontinuities • Error stays the same as in the single discontinuity case • While other methods (stratified) double the variance • Multiple discontinuities: separate into individual box functions • Uniform Jitter has same variance as uniform • Optimal with no bias or banding
Linear Light: Uniform Error Image (scaled up) Uniform 16 samples 3.97% RMS Error (best) Uniform causes banding
Linear Light: Uniform Jitter Error Image (scaled up) Uniform Jitter 16 samples 4.21% RMS Error No banding, low error
Linear Light: Stratified Error Image (scaled up) Stratified 16 samples 5.36% RMS Error (worst)
2D Pixel Light Fourier Analysis • Fourier analysis for fixed depth blocker • Shadow spectrum line in pixel-light space • Wedge if blockers at multiple depths [Egan 2011] • Builds on [Egan 2011] and Fourier analysis of Monte Carlo [Durand 2011] but full pixel-light theory y Light Ωy y Occlusion Blocker Ωx x Receiver x Visibility Spatial Domain Fourier Domain
Fourier Analysis: Uniform Sampling • Sampling pattern same for all x in uniform sampling • Fourier spectrum on vertical line, spacing depends on N • Product of visibility and sampling: Fourier convolution • Errors (only) when aliases touch spatial axis • Banding since error concentrated in specific frequencies Ωy Ωy Ωy Ωx Ωx Ωx Uniform Sampling Visibility Spectrum Sampled Visibility
Fourier Analysis: Uniform Jitter • Sampling pattern uniform spaced but jittered at each x • Fourier spectrum dots for replicas become horizontal lines • Fourier convolution: Central spectrum plus noise • Errors diffused to entire spatial axis • No banding: error not concentrated in specific frequencies Ωy Ωy Ωy Ωx Ωx Ωx Uniform Jitter Sampling Visibility Spectrum Sampled Visibility
Planar Area Lights • Apply linear 1D analysis to each “scanline” of 2D light • But possible bad correlation between scanlines Samples Correlated Samples De-Correlated Stratified Uniform Jitter Visible Blocked
Frequency Analysis: Shape of Light • For one pixel, Fourier spectrum of visibility, light • Uniform Jitter is a regular comb pattern • Simple visibility lies on a line (assume horizontal) Ωy Ωx
Frequency Analysis: Shape of Light • Integral of product of visibility and sampling pattern • True in spatial or Fourier domain • Ground Truth is constant (0 frequency) term only • Errors when significant spectral overlap Ωy Ωx
Frequency Analysis: Shape of Light • Smooth lights (e.g., Gaussian, circular) • Multiply light by Gaussian same as multiply sampling pattern • Fourier: Convolve sampling pattern by Gaussian • Overlap now only along horizontal line, not full pattern Ωy Ωx
Implementation • Simple shaders in RenderMan (general RIB files) • NVIDIA Optix for real-time applications • Sampling patterns in closest hit kernel • Practical Result: Uniform Jitter best published method to our knowledge for circle, linear lights
Grids: Circle and Gaussian Lights • Comparable gain across all sample counts
Conclusion • Comprehensive Theory of MC Visibility Sampling • Linear (1D) Lights: Uniform Jitter is optimal • Circular or Gaussian Light: Uniform Jitter is better • Square Light: Uniform Jitter worse than Stratified • Halton, blue noise do not perform better • Introduce new Statistical and Fourier approaches • Best sampling pattern depends on shape of light • Can choose linear or circular instead of square lights • Practical gains of 20%-40% for almost no effort • Future analyses of Monte Carlo patterns • Optimal pattern for planar lights still an open question
Acknowledgments • Rob Cook for inspiration, discussing 2D pixel-light • Fredo Durand for notes on Fourier Monte Carlo • Kevin Egan, Florian Hecht, Christophe Hery, Juan Buhler for scenes in the paper • Li-Yi Wei and Christophe Hery for discussions of blue noise and sampling methods respectively • Anonymous reviewers for many helpful suggestions