Mixing Monte Carlo and Progressive Rendering for Improved Global - - PowerPoint PPT Presentation
Mixing Monte Carlo and Progressive Rendering for Improved Global - - PowerPoint PPT Presentation
Mixing Monte Carlo and Progressive Rendering for Improved Global Illumination Ian C. Doidge Mark W. Jones Benjamin Mora Swansea University, Wales Thursday 14 th June Computer Graphics International 2012 Motivation ? X Remove caustics MC
Motivation
2
MC Path tracing Remove caustics Add 16x samples
X ?
2048 samples 128 samples 128 filtered samples
Monte Carlo Integration
3
Path Tracing
Iterate − Path Tracing (PT)
− [Kajiya ’86]
− Bidirectional Path Tracing
− [Lafortune & Willems ‘93] − [Veach & Guibas ’94]
− Metropolis Light
Transport
− Modify existing paths − [Veach & Guibas ’97]
Monte Carlo Integration
4
Bidirectional PT
Iterate − Path Tracing (PT)
− [Kajiya ’86]
− Bidirectional Path Tracing
− [Lafortune & Willems ‘93] − [Veach & Guibas ’94]
− Metropolis Light
Transport
− Modify existing paths − [Veach & Guibas ’97]
Monte Carlo Integration
5
Metropolis
Iterate − Path Tracing (PT)
− [Kajiya ’86]
− Bidirectional Path Tracing
− [Lafortune & Willems ‘93] − [Veach & Guibas ’94]
− Metropolis Light
Transport
− Modify existing paths − [Veach & Guibas ’97]
− Good for diffuse lighting
− Sample stratification − Explicit camera/light source connections
− Poor caustic evaluation
− Low probability, high luminance paths − Result in spiked noise:
Monte Carlo Integration
Path Tracing Converged Reference (PT)
Monte Carlo Integration
− Path Tracing (PT):
− [Kajiya ’86]
− Bidirectional Path Tracing (BDPT):
− [Lafortune & Willems ‘93] − [Veach & Guibas ’94]
− Metropolis Light Transport (MLT):
− Modify existing paths − [Veach & Guibas ’97]
Path Tracing Converged Reference (PT)
Monte Carlo Integration
8
Path Tracing
Iterate
− Good for diffuse lighting
− Sample stratification − Explicit camera/light source
connections − Poor caustic evaluation
− Low probability, high luminance paths − Result in spiked noise:
Density Estimation
− Much better for caustic lighting
− High photon density regions
− Inefficient for diffuse lighting
− Diffuse bounces lead to poor distributions − Too few photons in density estimates
− Photon Mapping (PM):
− [Jensen ‘96]
− Stochastic Progressive PM (SPPM):
− [Hachisuka ‘09]
Converged Reference (PT) SPPM
Stochastic Progressive Photon Mapping (SPPM)
10
Photon Pass Ray Tracing Pass
Update & Iterate
Contributions
− Filter path space and evaluate
independently...
− Efficiently combine MC
with density estimation
− On the fly path filtering − Superior RMSE convergence
(vs. PT and SPPM) − Related Work
− Progressive Point-Light-Based Global
Illumination [Dammertz et al. 2010]
− Density Based Outlier Rejection [DeCoro
et al. 2010]
11
Path Tracing SPPM Our Method
Algorithm Overview
12
Trace Camera Paths Filter path vertices Compute vertex contributions Generate caustic photons Gather photons Primary hitpoints Output image Diffuse buffer Caustic buffer
Iterate
Path Filtering
13
− Separate path space
− ‘Diffuse’ and ‘Caustic’ lighting − Based on path/surface interactions
− Two disjoint sub-spaces
− Account for all possible light transport
− Apply pattern matching
Path Filtering
14
X
− Diffuse subspace: − Caustic subspace:
D
Diffuse interaction
S
Specular interaction
L
Implicit lighting
(L) Explicit lighting
Filtered Path Tracing
15
Filtered Path Tracing
Iterate
X X
Path Tracing
Iterate
Filtering Example
16
D D D S D E
D D D S D D E ‐ ‐ 1
D
Vertex Interactions
Binary Path Encoding:
D
Diffuse interaction
S
Specular interaction
L
Implicit lighting
(L) Explicit lighting − Diffuse subspace:
‐ ‐ 1 1 1 1
Filtering Example
17
D D D S (L) X D E (L) (L)
D D D S D D E ‐ ‐ 1
D
Binary Path Encoding:
D
Diffuse interaction
S
Specular interaction
L
Implicit lighting
(L) Explicit lighting (L)
Implicit Lighting Explicit Lighting
‐ ‐ 1 1 1 1
Perform table lookup...
− Diffuse subspace:
Filtering Example
18
D D D S (L) X D E (L) (L) D D
Diffuse interaction
S
Specular interaction
L
Implicit lighting
(L) Explicit lighting (L)
X
Overview
19
Trace Camera Paths Filter path vertices Compute vertex contributions Generate caustic photons Gather photons Primary hitpoints Output image Diffuse buffer Caustic buffer
Iterate
Filtered SPPM
20
Photon Pass
Update
X X
Primary Hitpoints
Photon Filtering
− Deposit only caustic photons:
− Lower memory cost (~10%) − Faster photon gathering − Similar caustic convergence
− Caustic subspace: D X L D D L D S D
21
− Combine diffuse and caustic buffers:
− Pixel-wise addition − Obtain intermediate results after each iteration
Image Reconstruction
- 22
Diffuse Buffer Caustic Buffer Full Global Illumination
Results
Path Tracing SPPM Equal time comparison after 30 minutes
23
Results
Path Tracing SPPM Equal time comparison after 30 minutes
24
Results
Path Tracing SPPM Our Method Converged PT Equal time comparison after 5 minutes
25
Results
Path Tracing SPPM Our Method Equal time comparison after 5 minutes
26
Error comparison (RMSE)
27
Conclusion
− Efficiently render diffuse and caustic lighting:
− Progressive multi-pass method − Diffuse lighting using Monte Carlo integration − Caustic lighting via reduced SPPM − No additional bias
− Future Work
− Automatic adjustment of camera paths vs. photons − Adaptive photon generation
− Improve efficiency and photon distribution
28
Thank you for listening! Questions? (and Answers)
29
Thank you for listening! Questions? (and Answers)
30
31
Error comparison (RMSE)
Error comparison (RMSE)
Error comparison (RMSE)
Motivation
Path Tracing SPPM Our Method Converged Reference (PT)
35
Overview
Trace Camera Paths Filter path vertices Compute vertex contributions Generate caustic photons Gather photons
Primary hit points
Output image
Diffuse buffer Caustic buffer
Iterate
Caustic only SPPM
Filtered Path Tracing Pass Filtered Photon Pass
Iterate
X X X X
Filtered SPPM
Filtered Photon Pass
Iterate
X X
− Deposit only caustic photons:
− Lower memory cost − Faster photon gathering − Same rate of convergence
Photon Filtering
− Caustic subspace:
SPPM Our Method
‘Diffuse’ photon ‘Caustic’ photon
Stochastic Progressive Photon Mapping (SPPM)
Ray Tracing Pass Photon Pass
Iterate
Path Filtering
The linked image cannot be displayed. The file may have been moved, renamed, or deleted. Verify that the link points to the correct file and location. The linked image cannot be displayed. The file may have been moved, renamed, or deleted. Verify that the link points to the correct file and location. The linked image cannot be displayed. The file may have been moved, renamed, or deleted. Verify that the link points to the correct file and location. The linked image cannot be displayed. The file may have been moved, renamed, or deleted. Verify that the link points to the correct file and location.Caustic Lighting: E(S|D)*D+S*L E(S|D)*D+S*DL Direct lighting: ES*DL Single Bounce Diffuse: ES*DDL Multiple Bounce Diffuse: ES*DDD+L
Monte Carlo Integration
42
Bidirectional Path Tracing
Iterate
Path Tracing
Iterate
Stochastic Progressive Photon Mapping (SPPM)
Photon Pass Ray Tracing Pass
Iterate
Monte Carlo Integration
− Monte Carlo Integration methods:
− Good for diffuse lighting
− Sample stratification − Explicit camera/light source connections
− Poor caustic evaluation
− Low probability, high luminance paths − Result in spiked noise:
Path Tracing Converged Reference (PT)
Density Estimation
− Density Estimation methods:
− Much better for caustic lighting
− Higher photon density regions − Can handle difficult specular paths
− Inefficient for diffuse lighting
− Diffuse bounces lead to poor photon
distribution
− Insufficient photons in density estimates
Converged Reference (PT) SPPM
Overview
− Multi-pass progressive algorithm:
−
Path Tracing for ‘diffuse’ lighting (No bias)
−
SPPM for 'caustic' lighting (Progressively decreasing bias)
− Filter path space and evaluate independently...
−
Efficiently combine MC and density estimation methods
−
On the fly path filtering
−
Superior RMSE convergence (vs. PT and SPPM)
− Related Work
−
Density-based outlier rejection [Decoro et al. 2010]
−
Progressive point-light based global illumination [Dammertz et al. 2010]
−
Caustic Forecasting [Budge et al. 2008]