Mixing Monte Carlo and Progressive Rendering for Improved Global - - PowerPoint PPT Presentation

mixing monte carlo and progressive rendering for improved
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Mixing Monte Carlo and Progressive Rendering for Improved Global Illumination

Ian C. Doidge Mark W. Jones Benjamin Mora Swansea University, Wales

Thursday 14th June Computer Graphics International 2012

slide-2
SLIDE 2

Motivation

2

MC Path tracing Remove caustics Add 16x samples

X ?

2048 samples 128 samples 128 filtered samples

slide-3
SLIDE 3

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]

slide-4
SLIDE 4

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]

slide-5
SLIDE 5

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]

slide-6
SLIDE 6

− 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)

slide-7
SLIDE 7

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)

slide-8
SLIDE 8

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:

slide-9
SLIDE 9

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

slide-10
SLIDE 10

Stochastic Progressive Photon Mapping (SPPM)

10

Photon Pass Ray Tracing Pass

Update & Iterate

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

− Apply pattern matching

Path Filtering

14

X

− Diffuse subspace: − Caustic subspace:

D

Diffuse interaction

S

Specular interaction

L

Implicit lighting

(L) Explicit lighting

slide-15
SLIDE 15

Filtered Path Tracing

15

Filtered Path Tracing

Iterate

X X

Path Tracing

Iterate

slide-16
SLIDE 16

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:

slide-17
SLIDE 17

‐ ‐ 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:

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

Filtered SPPM

20

Photon Pass

Update

X X

Primary Hitpoints

slide-21
SLIDE 21

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

slide-22
SLIDE 22

− Combine diffuse and caustic buffers:

− Pixel-wise addition − Obtain intermediate results after each iteration

Image Reconstruction

  • 22

Diffuse Buffer Caustic Buffer Full Global Illumination

slide-23
SLIDE 23

Results

Path Tracing SPPM Equal time comparison after 30 minutes

23

slide-24
SLIDE 24

Results

Path Tracing SPPM Equal time comparison after 30 minutes

24

slide-25
SLIDE 25

Results

Path Tracing SPPM Our Method Converged PT Equal time comparison after 5 minutes

25

slide-26
SLIDE 26

Results

Path Tracing SPPM Our Method Equal time comparison after 5 minutes

26

slide-27
SLIDE 27

Error comparison (RMSE)

27

slide-28
SLIDE 28

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

slide-29
SLIDE 29

Thank you for listening! Questions? (and Answers)

29

slide-30
SLIDE 30

Thank you for listening! Questions? (and Answers)

30

slide-31
SLIDE 31

31

slide-32
SLIDE 32

Error comparison (RMSE)

slide-33
SLIDE 33

Error comparison (RMSE)

slide-34
SLIDE 34

Error comparison (RMSE)

slide-35
SLIDE 35

Motivation

Path Tracing SPPM Our Method Converged Reference (PT)

35

slide-36
SLIDE 36

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

slide-37
SLIDE 37

Caustic only SPPM

Filtered Path Tracing Pass Filtered Photon Pass

Iterate

X X X X

slide-38
SLIDE 38

Filtered SPPM

Filtered Photon Pass

Iterate

X X

slide-39
SLIDE 39

− 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

slide-40
SLIDE 40

Stochastic Progressive Photon Mapping (SPPM)

Ray Tracing Pass Photon Pass

Iterate

slide-41
SLIDE 41

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

slide-42
SLIDE 42

Monte Carlo Integration

42

Bidirectional Path Tracing

Iterate

Path Tracing

Iterate

slide-43
SLIDE 43

Stochastic Progressive Photon Mapping (SPPM)

Photon Pass Ray Tracing Pass

Iterate

slide-44
SLIDE 44

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)

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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]

slide-47
SLIDE 47 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.

Photon Pass

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.

Progressive Photon Mapping

Ray Tracing Pass

Iterate

slide-48
SLIDE 48

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]