A Theory of Monte Carlo Visibility Sampling Ravi Ramamoorthi John Anderson Mark Meyer Derek Nowrouzezahrai UC Berkeley Pixar (now at Google) Pixar Disney Research Zurich University of Montreal.
Download
Report
Transcript A Theory of Monte Carlo Visibility Sampling Ravi Ramamoorthi John Anderson Mark Meyer Derek Nowrouzezahrai UC Berkeley Pixar (now at Google) Pixar Disney Research Zurich University of Montreal.
A Theory of Monte Carlo
Visibility Sampling
Ravi Ramamoorthi
John Anderson
Mark Meyer
Derek Nowrouzezahrai
UC Berkeley
Pixar (now at Google)
Pixar
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
Circle
stratified
RMS 8.3%
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: Two Discontinuities: Many Discontinuities:
Heaviside Function Boxcar Function
Many Box Functions
Single Discontinuity: Uniform Sampling
Error of Uniform Sampling
Error depends only on stratum of discontinuity
Error depends only on discontinuity location
1
Worst-Case, Variance (N = samples) 2N
Depends only on sample placement in stratum
Visibility at Pixel
Uniform Sampling
Absolute Error
1
12N 2
Single Discontinuity: Errors
Sample Location
End-pts of stratum
e.g., QMC Halton
Random (Jittered)
Stratified Sampling
Center (Uniform)
Worst-Case
1
N
1
N
1
2N
RMS Error
1
3N
1
6N
1
12N
Variance
1
3N 2
1
6N 2
1
12N 2
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
Visibility
1
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 vis 00 / 01 / 10 / 11 = 0,1,2, low variance
Assume discontinuities in different strata
For very complex visibility, stratification not useful anyway
Two Discontinuities: Errors
Sampling Method Worst-Case RMS Error Variance
Stratified
Uniform Jitter
Uniform
2
N
1
N
1
N
1
3N
1
6N
1
6N
1
3N 2
1
6N 2
1
6N 2
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
Blocker
x
Receiver
Ωx
x
Visibility Spatial Domain Fourier Domain
Fourier Analysis: Uniform Sampling
Ωy
Ωy
Ωy
=
Ä
Ωx
Ωx
Visibility Spectrum
Uniform Sampling
Ωx
Sampled Visibility
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
Fourier Analysis: Uniform Jitter
Ωy
Ωy
Ωy
=
Ä
Ωx
Ωx
Ωx
Visibility Spectrum Uniform Jitter Sampling Sampled Visibility
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
Planar Area Lights
Apply linear 1D analysis to each “scanline” of 2D light
But possible bad correlation between scanlines
Samples Correlated
Uniform Jitter
Blocked
Samples De-Correlated
Stratified
Visible
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 Light: Stratified 20
Grids: Circle Light: Uniform Jitter 20
Grids: Circle Light: Halton, Warp 25
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
To Jim Arvo, 1956-2011