Probabilistic illumination-aware filtering for Monte Carlo rendering - - PowerPoint PPT Presentation

probabilistic illumination aware filtering for monte
SMART_READER_LITE
LIVE PREVIEW

Probabilistic illumination-aware filtering for Monte Carlo rendering - - PowerPoint PPT Presentation

Probabilistic illumination-aware filtering for Monte Carlo rendering Ian C. Doidge Mark W. Jones Swansea University, Wales, UK Wednesday 12 th June Computer Graphics International 2013 Monte Carlo Integration Path Tracing Unbiased


slide-1
SLIDE 1

Probabilistic illumination-aware filtering for Monte Carlo rendering

Ian C. Doidge Mark W. Jones Swansea University, Wales, UK

Wednesday 12th June Computer Graphics International 2013

slide-2
SLIDE 2

Monte Carlo Integration

2

− Path Tracing

− Unbiased − Robust

16384 samples 10 hrs

slide-3
SLIDE 3

Monte Carlo Integration

3

− Path Tracing

− Unbiased − Robust − Progressive

− High variance:

− Noise − Converges with

1 sample 2 secs 2 samples 4 secs 4 samples 8 secs 8 samples 17 secs 16 samples 34 secs 32 samples 1 min 10 secs 64 samples 2 mins 30 secs 128 samples 5 mins 256 samples 10 mins 512 samples 20 mins 1024 samples 40 mins 2048 samples 1 hr 20 mins 4096 samples 2 hrs 30 mins 8192 samples 5 hrs 16384 samples 10 hrs

slide-4
SLIDE 4

Motivation

− Can exploit pixel correlation − But... often breaks down:

− Texture detail − Illumination discontinuities − Glossy reflections

− Filter but detect & preserve edges

− Use data from rendering − Already available

Path Tracing Reference

slide-5
SLIDE 5

Related Work

Outlier rejection:

− For ‘cleaning up’ images − Decoro et al. ‘10, Pajot et al. ’11

General image denoising:

− Kalantari & Sen ‘13

Sample reconstruction:

− Sen & Darabi ’12 − Impressive quality, few samples − Unsuitable for progressive rendering

(Ir)radiance caching:

− Ward ‘88, Kontkanen ’04, Krivanek ‘05, Gassenbauer ’09 − Interpolation bias, limited to low frequency detail

slide-6
SLIDE 6

Contributions

− Per-pixel clustering framework

− Incident radiance − Layers to separate vertex contributions − Aids detection of discontinuities

− High intensity noise removal

− Pre-process to filtering

− Probabilistic filtering

− Preserves texture detail − Preserves illumination edges − Suitable for progressive rendering

6

Path Tracing Our Method

slide-7
SLIDE 7

Algorithm Overview

7

Trace paths Perform clustering High intensity noise removal Filtered image

Iterate

Low variance buffers Probabilistic filtering Unbiased image Compute vertex contributions Radiance Radiance Radiance layers Incident radiance Incident radiance Irradiance layers

slide-8
SLIDE 8

Layer based approach

8

1 2 3 = + +

  • =

+ + Radiance Irradiance

slide-9
SLIDE 9

Layer based approach

9

1 2 3 = + +

− Irradiance contributions:

− Ignores visible texture and BRDF − Already available!

  • =

+ +

− Separate vertex contributions:

− Minimise interference − Simplifies feature detection

Radiance Irradiance

slide-10
SLIDE 10

− Utilise texture buffer:

− Incident radiance

radiance

Radiance separation

,

, , ·

  • , ,

… , ,

  • ,
  • ·
  • , ,

·

slide-11
SLIDE 11

Clustering

11

  • v = 1

v = 2 v 3

slide-12
SLIDE 12

− 1D Luminance domain:

− Improves performance/storage − H.V.S. sensitive to luminance − Preserves visual discontinuities

  • Clustering

12

v = 1 v = 2 v 3

slide-13
SLIDE 13

− Clusters at each layer:

− Aggregate samples min max − Represents (ir)radiance for sub-integral − Contiguous, non-overlapping in 1D

  • Clustering

13

v = 1 v = 2 v 3

Cluster{ float[3] radiance float[3] irradiance float min float max int numSamples : 31 bits int outlier : 1 bit }

slide-14
SLIDE 14

Clustering

14

  • v = 1

v = 2 v 3

slide-15
SLIDE 15

− Heuristic based on:

− Absolute sample difference − Cluster gradient

− Add new contributions

− Extend existing clusters

Clustering

slide-16
SLIDE 16

Clustering

− Based on:

− Absolute sample difference − Cluster gradient

− Add new contributions

− Extend existing clusters

slide-17
SLIDE 17

Clustering

− Based on:

− Absolute sample difference − Cluster gradient

− Add new contributions

− Extend existing clusters

− Merge clusters

− Reduce memory costs − Dynamic approximation of integral − Always preserves largest discontinuities

slide-18
SLIDE 18

Algorithm Overview

18

Trace paths Perform clustering High intensity noise removal Filtered image

Iterate

Low variance buffers Probabilistic filtering Unbiased image Compute layer contributions Radiance Radiance Radiance layers Incident radiance Incident radiance Irradiance layers

slide-19
SLIDE 19

− Key differences:

− Ignore texture variation − Layer based rejection

Lower rejection rates Energy preservation More data

Noise Removal

19

− Density estimation approach

− Image space neighbourhood

− DeCoro et al. ’10

− Pixel-wise estimates

− Pajot et al. ’11

− Filtering Pre-process:

− Prefer sparse data to no data − Accept if isolated and low energy

slide-20
SLIDE 20

Illumination-aware filtering

− Extends cross-bilateral filter:

− Eisemann & Durand ’04 − Petschnigg et al. ’04 − Low variance range buffer

− Poisson probability distribution:

− Derive weights from cluster statistics − Probabilistic detection of illumination edges

!

slide-21
SLIDE 21

Illumination-aware filtering

21

Filtered image Find similar clusters Radiance Low var. buffers Calculate filter weights Scale cluster contributions Final pixel radiance Incident radiances

slide-22
SLIDE 22

− Extend min and max of cluster from pixel p − Find overlapping clusters in

neighbouring contributing pixels, c

− Compute poisson probabilities

using sample counts

− Repeat for each cluster in pixel p

Find similar clusters

  • !

6 5 1

slide-23
SLIDE 23

− Product of Gaussian, geometric and poisson

weights:

Calculate filter weights

23

Radiance Radiance Low var. buffers Geometric weights Compute

  • geom. weights

Radiance Radiance Poisson weights Filter kernel weights · ·

  • Gaussian

Geometric Poisson Gaussian weights

slide-24
SLIDE 24

Scale cluster contributions

− Radiance is a product of:

− Texture , BRDF coefficient , incident radiance ,

− Preserve detail in from pixel − Filter and using neighbouring pixels − Weight with kernel

· ·

  • · ·

·

slide-25
SLIDE 25

Results

Path Tracing Our Method

25

Cross-Bilateral Reference

− Multiple coloured lights − Hard and soft gradients − Chromatic and luminance

noise

16 samples per pixel

slide-26
SLIDE 26

Results

Path Tracing (22 samples) Reference Equal time comparison after 45 seconds

26

Our method (16 samples)

slide-27
SLIDE 27

Results

Reference

27

Cross-Bilateral (Smooth noise) Cross-Bilateral (Preserve texture) Our method Equal time comparison after 45 seconds

slide-28
SLIDE 28

− Self-shadowing − Complex geometry

Results

Path Tracing Our method Cross-Bilateral Equal time comparison after 45 seconds

28

Reference

slide-29
SLIDE 29

Conclusion

− Fast image-based incident radiance filtering

− Preserve illumination edges and gradients − Preserve texture detail − Remove high intensity noise

− Future Work

− Perceptual clustering heuristic − Layer specific parameters − Automatic kernel radius

29

slide-30
SLIDE 30

Thank you for listening! Questions? (and Answers)

30

slide-31
SLIDE 31

Thank you for listening! Questions? (and Answers)

31

slide-32
SLIDE 32

32

slide-33
SLIDE 33

Future Improvements

− Aliasing:

− Yang et al. ’11, Anti-Aliasing Recovery, ACM Trans. Graph.

− Convergence:

− Variance based adaptive filter widths

− Noise removal parameters:

− Difficult to establish for low sample counts − What is the pixels normal distribution?

33