Recent Advances in Adap.ve Sampling and Reconstruc.on for - - PowerPoint PPT Presentation

recent advances in adap ve sampling and reconstruc on for
SMART_READER_LITE
LIVE PREVIEW

Recent Advances in Adap.ve Sampling and Reconstruc.on for - - PowerPoint PPT Presentation

Recent Advances in Adap.ve Sampling and Reconstruc.on for Monte Carlo Rendering Deriva've Analysis Wojciech Jarosz wjarosz@disneyresearch.com Thursday, July 16, 15 Path tracing -


slide-1
SLIDE 1

Recent ¡Advances ¡in ¡Adap.ve ¡Sampling ¡and ¡ Reconstruc.on ¡for ¡Monte ¡Carlo ¡Rendering Deriva've ¡Analysis

Wojciech ¡Jarosz wjarosz@disneyresearch.com

Thursday, July 16, 15

slide-2
SLIDE 2

Path ¡tracing ¡-­‑ ¡diffuse ¡scene

128 ¡paths/pixel

2

Thursday, July 16, 15

slide-3
SLIDE 3

Diffuse ¡indirect ¡illumina'on ¡is ¡smooth

3

Thursday, July 16, 15

slide-4
SLIDE 4

Diffuse ¡indirect ¡illumina'on ¡is ¡smooth

3

Perfect ¡candidate ¡for ¡sparse ¡sampling ¡and ¡interpola2on

Thursday, July 16, 15

slide-5
SLIDE 5

Interpolated ¡indirect ¡illumina'on

4

1M ¡pixels ¡-­‑ ¡4K ¡cache ¡points

[Ward ¡et ¡al. ¡1988]

Irradiance ¡Caching

Thursday, July 16, 15

slide-6
SLIDE 6

Irradiance ¡Caching ¡Algorithm

5

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-7
SLIDE 7

if at least one cached illumination value near x then

Irradiance ¡Caching ¡Algorithm

5

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-8
SLIDE 8

if at least one cached illumination value near x then Interpolate ¡illumina'on ¡from ¡the ¡cached ¡value(s).

Irradiance ¡Caching ¡Algorithm

5

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-9
SLIDE 9

if at least one cached illumination value near x then Interpolate ¡illumina'on ¡from ¡the ¡cached ¡value(s). else Compute ¡and ¡cache ¡a ¡new ¡illumina'on ¡value ¡at ¡x.

Irradiance ¡Caching ¡Algorithm

5

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-10
SLIDE 10

if at least one cached illumination value near x then Interpolate ¡illumina'on ¡from ¡the ¡cached ¡value(s). else Compute ¡and ¡cache ¡a ¡new ¡illumina'on ¡value ¡at ¡x.

Irradiance ¡Caching ¡Algorithm

  • Some ¡ques9ons ¡that ¡remain:
  • ­‑ What ¡do ¡we ¡cache?
  • ­‑ What ¡makes ¡a ¡cache ¡point ¡“nearby”?
  • ­‑ How ¡do ¡we ¡interpolate ¡the ¡nearby ¡cached ¡values?

5

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-11
SLIDE 11

Lamber'an ¡assump'on

  • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface:

6

[Ward ¡et ¡al. ¡1988]

Lr(x, ~ !r) = Z

H2fr(x, ~

!i, ~ !r)Li(x, ~ !i)(~ n · ~ !i) d~ !i Z

Thursday, July 16, 15

slide-12
SLIDE 12

Lamber'an ¡assump'on

  • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface:

6

[Ward ¡et ¡al. ¡1988]

Lr(x, ~ !r) = Z

H2fr(x, ~

!i, ~ !r)Li(x, ~ !i)(~ n · ~ !i) d~ !i Z

Thursday, July 16, 15

slide-13
SLIDE 13

Z

H

= ⇢ ⇡ Z

H2Li(x, ~

!i)(~ n · ~ !i) d~ !i | {z }

Lamber'an ¡assump'on

  • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface:

6

[Ward ¡et ¡al. ¡1988]

Lr(x, ~ !r) = Z

H2fr(x, ~

!i, ~ !r)Li(x, ~ !i)(~ n · ~ !i) d~ !i Z

Thursday, July 16, 15

slide-14
SLIDE 14

Z

H

= ⇢ ⇡ Z

H2Li(x, ~

!i)(~ n · ~ !i) d~ !i | {z } Irradiance

Lamber'an ¡assump'on

  • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface:

6

[Ward ¡et ¡al. ¡1988]

Lr(x, ~ !r) = Z

H2fr(x, ~

!i, ~ !r)Li(x, ~ !i)(~ n · ~ !i) d~ !i Z

H

| {z }

E(x,~ n)

Thursday, July 16, 15

slide-15
SLIDE 15

Z

H

= ⇢ ⇡ Z

H2Li(x, ~

!i)(~ n · ~ !i) d~ !i | {z } Irradiance

Lamber'an ¡assump'on

  • Indirect ¡illumina9on ¡on ¡a ¡Lamber9an ¡surface:

6

[Ward ¡et ¡al. ¡1988]

Lr(x, ~ !r) = Z

H2fr(x, ~

!i, ~ !r)Li(x, ~ !i)(~ n · ~ !i) d~ !i Z

H

| {z }

E(x,~ n)

| {z } E(x, ~ n) ≈ ⇡ N

N

X

j=1

Li(x, ~ !i,j)

Thursday, July 16, 15

slide-16
SLIDE 16

Interpola'ng ¡Irradiance

  • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible
  • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value?

7

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-17
SLIDE 17

Interpola'ng ¡Irradiance

  • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible
  • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value?

7

[Ward ¡et ¡al. ¡1988]

E(xi)

Thursday, July 16, 15

slide-18
SLIDE 18

Interpola'ng ¡Irradiance

  • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible
  • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value?

7

[Ward ¡et ¡al. ¡1988]

E(xi) E(xi + Δx)?

Δx

Thursday, July 16, 15

slide-19
SLIDE 19

Interpola'ng ¡Irradiance

  • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible
  • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value?

7

[Ward ¡et ¡al. ¡1988]

E(x) ≈ E(xi) + ✓@E @x ∆x + @E @~ n ∆~ n ◆ E(xi) E(xi + Δx)?

Δx

Thursday, July 16, 15

slide-20
SLIDE 20

error

Interpola'ng ¡Irradiance

  • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible
  • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value?

7

[Ward ¡et ¡al. ¡1988]

E(x) ≈ E(xi) + ✓@E @x ∆x + @E @~ n ∆~ n ◆ E(xi) E(xi + Δx)?

Δx

Thursday, July 16, 15

slide-21
SLIDE 21

error

Interpola'ng ¡Irradiance

  • Irradiance ¡computa9on ¡costly, ¡reuse ¡whenever ¡possible
  • How ¡far ¡away ¡can ¡we ¡reuse ¡a ¡cached ¡value?

7

[Ward ¡et ¡al. ¡1988]

E(x) ≈ E(xi) + ✓@E @x ∆x + @E @~ n ∆~ n ◆ E(xi) E(xi + Δx)?

Δx

✓@E @x ∆x + @E @~ n ∆~ n ◆

Thursday, July 16, 15

slide-22
SLIDE 22
  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

✓@E @x ∆x + @E @~ n ∆~ n ◆

Interpola'ng ¡Irradiance

8

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-23
SLIDE 23
  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

Interpola'ng ¡Irradiance

8

[Ward ¡et ¡al. ¡1988]

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

  • Thursday, July 16, 15
slide-24
SLIDE 24
  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

Interpola'ng ¡Irradiance

8

[Ward ¡et ¡al. ¡1988]

~ n x

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

∂x @ @~ n

Thursday, July 16, 15

slide-25
SLIDE 25
  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

Interpola'ng ¡Irradiance

8

[Ward ¡et ¡al. ¡1988]

~ n x ∂ ∂x @ @~ n

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

  • Thursday, July 16, 15
slide-26
SLIDE 26

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

Interpola'ng ¡Irradiance

9

[Ward ¡et ¡al. ¡1988]

@ @~ n ~ n x ∂ ∂x

Thursday, July 16, 15

slide-27
SLIDE 27

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

Interpola'ng ¡Irradiance

9

[Ward ¡et ¡al. ¡1988]

@ @~ n ~ n x ∂ ∂x

Thursday, July 16, 15

slide-28
SLIDE 28

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

  • To ¡compute ¡valid ¡region, ¡need ¡to ¡es9mate ¡change ¡in ¡

irradiance

  • Consider ¡hypothe9cal,

worst-­‑case ¡scene: the ¡“Split-­‑Sphere”

Interpola'ng ¡Irradiance

10

[Ward ¡et ¡al. ¡1988]

@ @~ n ∂ ∂x x ~ n

Thursday, July 16, 15

slide-29
SLIDE 29
  • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes:

"i .

  • @E

@x ∆x + @E @~ n ∆~ n

  • Interpola'ng ¡Irradiance

11

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-30
SLIDE 30
  • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes:

Interpola'ng ¡Irradiance

12

"i . Ei ✓ 4 ⇡ kx xik Ri + p 1 (~ n · ~ ni) ◆

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-31
SLIDE 31
  • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes:

Interpola'ng ¡Irradiance

12

"i . Ei ✓ 4 ⇡ kx xik Ri + p 1 (~ n · ~ ni) ◆

[Ward ¡et ¡al. ¡1988]

  • rienta2on ¡difference

Thursday, July 16, 15

slide-32
SLIDE 32
  • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes:

Interpola'ng ¡Irradiance

12

"i . Ei ✓ 4 ⇡ kx xik Ri + p 1 (~ n · ~ ni) ◆

[Ward ¡et ¡al. ¡1988]

posi2on ¡difference, ¡rela2ve ¡to radius ¡of ¡sphere

  • rienta2on ¡difference

Thursday, July 16, 15

slide-33
SLIDE 33
  • In ¡the ¡“Split-­‑Sphere” ¡environment ¡the ¡error ¡becomes:

“average” ¡distance ¡to ¡visible ¡surfaces

Interpola'ng ¡Irradiance

12

"i . Ei ✓ 4 ⇡ kx xik Ri + p 1 (~ n · ~ ni) ◆

[Ward ¡et ¡al. ¡1988]

posi2on ¡difference, ¡rela2ve ¡to radius ¡of ¡sphere

  • rienta2on ¡difference

Thursday, July 16, 15

slide-34
SLIDE 34

Interpola'ng ¡Irradiance

  • At ¡each ¡shading ¡loca'on, ¡perform ¡a ¡weighted ¡average ¡of ¡all ¡

cached ¡values ¡which ¡have ¡an ¡error ¡below ¡some ¡threshold.

13

E(x, ~ n) ≈

P

i∈S

wi(x,~ n) Ei P

i∈S

wi(x,~ n)

[Ward ¡et ¡al. ¡1988]

x

Thursday, July 16, 15

slide-35
SLIDE 35

Interpola'ng ¡Irradiance

  • At ¡each ¡shading ¡loca'on, ¡perform ¡a ¡weighted ¡average ¡of ¡all ¡

cached ¡values ¡which ¡have ¡an ¡error ¡below ¡some ¡threshold.

14

where:

E(x, ~ n) ≈

P

i∈S

wi(x,~ n) Ei P

i∈S

wi(x,~ n)

S = {i : ✏i(x, ~ n) < a}

[Ward ¡et ¡al. ¡1988]

x

Thursday, July 16, 15

slide-36
SLIDE 36

Interpola'ng ¡Irradiance

  • At ¡each ¡shading ¡loca'on, ¡perform ¡a ¡weighted ¡average ¡of ¡all ¡

cached ¡values ¡which ¡have ¡an ¡error ¡below ¡some ¡threshold.

15

where:

E(x, ~ n) ≈

P

i∈S

wi(x,~ n) Ei P

i∈S

wi(x,~ n)

S = {i : ✏i(x, ~ n) < a}

[Ward ¡et ¡al. ¡1988]

x xi1 xi2

Thursday, July 16, 15

slide-37
SLIDE 37

Interpola'ng ¡Irradiance

  • At ¡each ¡shading ¡loca'on, ¡perform ¡a ¡weighted ¡average ¡of ¡all ¡

cached ¡values ¡which ¡have ¡an ¡error ¡below ¡some ¡threshold. ¡

  • Reciprocal ¡of ¡the ¡error ¡is ¡used ¡as ¡the ¡weight

16

where:

E(x, ~ n) ≈

P

i∈S

wi(x,~ n) Ei P

i∈S

wi(x,~ n)

wi(x, ~ n) =

1 ✏i(x,~ n) − 1 a

S = {i : ✏i(x, ~ n) < a}

[Ward ¡et ¡al. ¡1988]

x

Thursday, July 16, 15

slide-38
SLIDE 38

Irradiance ¡Caching

  • Pros:
  • ­‑ Independent ¡of ¡resolu9on.
  • ­‑ Computa9on ¡amor9zed ¡across ¡many ¡pixels
  • ­‑ Concentrates ¡computa9on ¡in ¡visible ¡regions ¡were ¡illumina9on ¡

changes ¡rapidly

17

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-39
SLIDE 39

Irradiance ¡Caching

  • Cons:
  • ­‑ Interpola9on/extrapola9on ¡can ¡introduce ¡visible ¡ar9facts
  • ­‑ Valid ¡radius ¡metric ¡not ¡always ¡robust
  • ­‑ Limited ¡to ¡Lamber9an ¡(maTe) ¡surfaces

18

[Ward ¡et ¡al. ¡1988]

Thursday, July 16, 15

slide-40
SLIDE 40

Improvements/Extensions

  • Many ¡extensions:
  • ­‑ Ward ¡and ¡Heckbert ¡‘92 ¡-­‑ ¡beTer ¡interpola9on
  • ­‑ Křivánek ¡et ¡al. ¡‘05a, ¡‘05b ¡-­‑ ¡glossy ¡surfaces
  • ­‑ Jarosz ¡et ¡al. ¡’08 ¡-­‑ ¡par9cipa9ng ¡media
  • ­‑ Jarosz ¡et ¡al. ¡‘12 ¡-­‑ ¡irradiance ¡Hessians
  • ­‑ Schwarzhaupt ¡et ¡al. ¡‘12 ¡-­‑ ¡beTer ¡error ¡control
  • ­‑ ...

19

Thursday, July 16, 15

slide-41
SLIDE 41

Irradiance ¡gradients

  • Improve ¡interpola2on/extrapola2on ¡quality ¡using ¡gradients
  • Irradiance ¡Gradients ¡[Ward ¡and ¡Heckbert ¡1992]
  • ­‑ Es9mate ¡an ¡actual ¡deriva9ve ¡to ¡the ¡irradiance
  • ­‑ Apply ¡this ¡deriva9ve ¡to ¡the ¡weighted ¡average

20

[Ward ¡and ¡Heckbert ¡1992]

Thursday, July 16, 15

slide-42
SLIDE 42

Gradients ¡(surface-­‑area ¡formula'on)

21

Thursday, July 16, 15

slide-43
SLIDE 43

rE(x) = r Z

A

L(x y) V (x, y) G(x, y) dy Z

Gradients ¡(surface-­‑area ¡formula'on)

21

Thursday, July 16, 15

slide-44
SLIDE 44

Gradients ¡(surface-­‑area ¡formula'on)

22

Z rE(x) = Z

A

rL V G + L rV G + L V rG dy Z

Thursday, July 16, 15

slide-45
SLIDE 45

Gradients ¡(surface-­‑area ¡formula'on)

22

Z rE(x) = Z

A

rL V G + L rV G + L V rG dy Z

Thursday, July 16, 15

slide-46
SLIDE 46

Gradients ¡(surface-­‑area ¡formula'on)

22

Z rE(x) = Z

A

rL V G + L rV G + L V rG dy Z

Thursday, July 16, 15

slide-47
SLIDE 47

Gradients ¡(surface-­‑area ¡formula'on)

22

Z rE(x) = Z

A

rL V G + L rV G + L V rG dy Z

Thursday, July 16, 15

slide-48
SLIDE 48

Gradients ¡(surface-­‑area ¡formula'on)

22

Z rE(x) = Z

A

rL V G + L rV G + L V rG dy Z

Thursday, July 16, 15

slide-49
SLIDE 49

Gradients ¡(surface-­‑area ¡formula'on)

22

Z rE(x) = Z

A

rL V G + L rV G + L V rG dy Z

Thursday, July 16, 15

slide-50
SLIDE 50

Gradients ¡(surface-­‑area ¡formula'on)

23

Z rE(x) ⇡ Z

A

L(x y) V (x, y) rG(x, y) dy

Thursday, July 16, 15

slide-51
SLIDE 51
  • Accounts ¡for ¡change ¡in ¡

geometric ¡rela9onship ¡ between ¡x ¡& ¡y

  • Ignores ¡occlusion ¡changes

Gradients ¡(surface-­‑area ¡formula'on)

24

Z rE(x) ⇡ Z

A

L(x y) V (x, y) rG(x, y) dy

Thursday, July 16, 15

slide-52
SLIDE 52

Gradients ¡(stra'fied ¡formula'on)

25

[Ward ¡and ¡Heckbert ¡1992]

Thursday, July 16, 15

slide-53
SLIDE 53
  • Considers ¡occlusion ¡changes

Gradients ¡(stra'fied ¡formula'on)

26

[Ward ¡and ¡Heckbert ¡1992]

Thursday, July 16, 15

slide-54
SLIDE 54
  • Considers ¡occlusion ¡changes

Very Important!

Gradients ¡(stra'fied ¡formula'on)

26

[Ward ¡and ¡Heckbert ¡1992]

Thursday, July 16, 15

slide-55
SLIDE 55

r

tE(x) = N1

X

k=1

@ˆ uk

N2

X

j=2

ukAj-,k(Lj,k Lj-1,k) cos θj- + ˆ

vk-

N2

X

j=1

vk-Aj,k-(Lj,k Lj,k-1) cos θj

1 A

Stra'fied ¡irradiance ¡gradient

27

x

vk- uk- (θj,k,ɸj,k) ɸk- ɸk+ θj- θj+

[Ward ¡and ¡Heckbert ¡1992]

Thursday, July 16, 15

slide-56
SLIDE 56

r

tE(x) = N1

X

k=1

@ˆ uk

N2

X

j=2

ukAj-,k(Lj,k Lj-1,k) cos θj- + ˆ

vk-

N2

X

j=1

vk-Aj,k-(Lj,k Lj,k-1) cos θj

1 A

Stra'fied ¡irradiance ¡gradient

27

x

vk- uk- (θj,k,ɸj,k) ɸk- ɸk+ θj- θj+

[Ward ¡and ¡Heckbert ¡1992]

Thursday, July 16, 15

slide-57
SLIDE 57

Interpola'ng ¡with ¡gradients

28

P

i∈S

wi(x,~ n) Ei P

E(x, ~ n) ≈

P

∈P i∈S

wi(x,~ n)

Thursday, July 16, 15

slide-58
SLIDE 58

Interpola'ng ¡with ¡gradients

28

E(x, ~ n) ≈

P

∈P i∈S

wi(x,~ n) P

i∈S

wi(x,~ n)(Ei+(~ ni⇥~ n)·(~ r

rEi)+(xxi)·(~

r

tEi))

P w (x,~ n)

Thursday, July 16, 15

slide-59
SLIDE 59

Interpola'ng ¡with ¡gradients

29

E(x, ~ n) ≈

P

∈P i∈S

wi(x,~ n) P

i∈S

wi(x,~ n)(Ei+(~ ni⇥~ n)·(~ r

rEi)+(xxi)·(~

r

tEi))

P w (x,~ n)

x

E

x

x

Thursday, July 16, 15

slide-60
SLIDE 60

Interpola'ng ¡with ¡gradients

30

E(x, ~ n) ≈

P

i∈S

wi(x,~ n)(Ei+(~ ni⇥~ n)·(~ r

rEi)+(xxi)·(~

r

tEi))

P w (x,~ n)

x

E

xi1 xi2

xi1 xi2

x Find ¡overlapping ¡cache ¡records

x

P

∈P i∈S

wi(x,~ n)

Thursday, July 16, 15

slide-61
SLIDE 61

Interpola'ng ¡with ¡gradients

31

E(x, ~ n) ≈ x

E

xi1 xi2

xi1 xi2

x

Ei1 Ei2

Extrapolate ¡along ¡gradients

x ∇t E ∇

t

E

P

i∈S

wi(x,~ n)(Ei+(~ ni⇥~ n)·(~ r

rEi)+(xxi)·(~

r

tEi))

P w (x,~ n) P

∈P i∈S

wi(x,~ n)

Thursday, July 16, 15

slide-62
SLIDE 62

Interpola'ng ¡with ¡gradients

32

x

E

xi1 xi2

xi1 xi2

x

x

E(x, ~ n) ≈

P

i∈S

wi(x,~ n)(Ei+(~ ni⇥~ n)·(~ r

rEi)+(xxi)·(~

r

tEi))

P w (x,~ n)

Weight ¡contribu'ons

P

∈P i∈S

wi(x,~ n)

Ei1 Ei2 ∇t E ∇

t

E

Thursday, July 16, 15

slide-63
SLIDE 63

Interpola'ng ¡with ¡gradients

33

E

xi1 xi2

x

x

E(x, ~ n) ≈

P

i∈S

wi(x,~ n)(Ei+(~ ni⇥~ n)·(~ r

rEi)+(xxi)·(~

r

tEi))

P w (x,~ n)

x xi1 xi2 Sum ¡extrapolated ¡values

P

∈P i∈S

wi(x,~ n)

Ei1 Ei2 ∇t E ∇

t

E

Thursday, July 16, 15

slide-64
SLIDE 64

Irradiance ¡Gradients

34

w/ ¡gradients w/o ¡gradients

Thursday, July 16, 15

slide-65
SLIDE 65

Beyond ¡Lamber'an ¡surfaces

  • Generaliza9on ¡to ¡glossy ¡surfaces

35

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-66
SLIDE 66

Beyond ¡Lamber'an ¡surfaces

  • Generaliza9on ¡to ¡glossy ¡surfaces
  • Radiance ¡Caching ¡[Křivánek ¡et ¡al. ¡2005a,2005b]

35

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-67
SLIDE 67

Beyond ¡Lamber'an ¡surfaces

  • Generaliza9on ¡to ¡glossy ¡surfaces
  • Radiance ¡Caching ¡[Křivánek ¡et ¡al. ¡2005a,2005b]
  • ­‑ Can ¡no ¡longer ¡cache ¡just ¡the ¡irradiance ¡value

35

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-68
SLIDE 68

Beyond ¡Lamber'an ¡surfaces

  • Generaliza9on ¡to ¡glossy ¡surfaces
  • Radiance ¡Caching ¡[Křivánek ¡et ¡al. ¡2005a,2005b]
  • ­‑ Can ¡no ¡longer ¡cache ¡just ¡the ¡irradiance ¡value
  • ­‑ Cache ¡full ¡hemispherical ¡radiance ¡field ¡at ¡sparse ¡loca9ons

35

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-69
SLIDE 69

Radiance ¡Storage

  • Use ¡spherical ¡or ¡hemispherical ¡harmonics
  • Approximates ¡smooth ¡func9ons ¡with ¡a ¡few ¡coefficients

36

[Křivánek ¡et ¡al. ¡2005a,2005b]

y0 y−1

1

y0

1

y1

1

y−2

2

y−1

2

y0

2

y1

2

y2

2

Thursday, July 16, 15

slide-70
SLIDE 70

Monte ¡Carlo

37

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-71
SLIDE 71

Radiance ¡Caching

38

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-72
SLIDE 72

Radiance ¡Gradients

  • Improve ¡interpola9on ¡quality ¡by ¡storing ¡gradient ¡of ¡

incoming ¡radiance ¡field

39

[Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-73
SLIDE 73

40

  • cclusion-­‑unaware
  • cclusion-­‑aware

[Krivanek ¡et ¡al. ¡2005a] [Krivanek ¡et ¡al. ¡2005b] [Křivánek ¡et ¡al. ¡2005a,2005b]

Thursday, July 16, 15

slide-74
SLIDE 74

41

Beyond ¡surfaces

  • Generaliza9ons ¡to ¡par9cipa9ng ¡media
  • Volumetric ¡Radiance ¡Caching ¡[Jarosz ¡et ¡al. ¡2008a, ¡2008b]
  • ­‑ Cache ¡radiance ¡and ¡gradients ¡within ¡volume

[Jarosz ¡et ¡al. ¡2008a, ¡2008b]

Thursday, July 16, 15

slide-75
SLIDE 75

Valid ¡Radius

42

[Jarosz ¡et ¡al. ¡2008a, ¡2008b]

Thursday, July 16, 15

slide-76
SLIDE 76

Gradients

43

no ¡gradients

[Jarosz ¡et ¡al. ¡2008a]

Thursday, July 16, 15

slide-77
SLIDE 77

Gradients

44

with ¡gradients

[Jarosz ¡et ¡al. ¡2008a]

Thursday, July 16, 15

slide-78
SLIDE 78

Results

45

VRC PT

[Jarosz ¡et ¡al. ¡2008a]

Thursday, July 16, 15

slide-79
SLIDE 79

PT

Results

46

VRC

[Jarosz ¡et ¡al. ¡2008a]

Thursday, July 16, 15

slide-80
SLIDE 80

Par'cipa'ng ¡media

47

no ¡media with ¡media

[Jarosz ¡et ¡al. ¡2008b]

Thursday, July 16, 15

slide-81
SLIDE 81

Surfaces ¡in ¡par'cipa'ng ¡media

48

no ¡media (indirect ¡irradiance) with ¡media (indirect ¡irradiance)

[Jarosz ¡et ¡al. ¡2008b]

Thursday, July 16, 15

slide-82
SLIDE 82

Occlusion ¡aware, ¡but ¡media ¡unaware ¡gradients [Ward ¡and ¡Heckbert ¡92]

Surfaces ¡in ¡par'cipa'ng ¡media

49

[Jarosz ¡et ¡al. ¡2008b]

Thursday, July 16, 15

slide-83
SLIDE 83

Surfaces ¡in ¡par'cipa'ng ¡media

49

Occlusion ¡and ¡media ¡aware ¡gradients [Jarosz ¡et ¡al. ¡2008b]

[Jarosz ¡et ¡al. ¡2008b]

Thursday, July 16, 15

slide-84
SLIDE 84

Gradients ¡by ¡[Ward ¡and ¡Heckbert ¡92]

Sun ¡beam ¡through ¡window

50

[Jarosz ¡et ¡al. ¡2008b]

Thursday, July 16, 15

slide-85
SLIDE 85

Sun ¡beam ¡through ¡window

50

Gradients ¡by ¡[Jarosz ¡et ¡al. ¡2008b]

[Jarosz ¡et ¡al. ¡2008b]

Thursday, July 16, 15

slide-86
SLIDE 86

51

Higher-­‑order ¡deriva'ves

  • Exploit ¡higher-­‑order ¡deriva9ves ¡for ¡beTer ¡error ¡control
  • ­‑ [Jarosz ¡et ¡al. ¡2012] ¡-­‑ ¡Hessians ¡(occlusion-­‑unaware)
  • ­‑ [Schwarzhaupt ¡et ¡al. ¡2012] ¡-­‑ ¡occlusion-­‑aware ¡Hessians ¡& ¡

prac9cal ¡details

Thursday, July 16, 15

slide-87
SLIDE 87

Split-­‑Sphere ¡Heuris'c

52

  • Basis ¡for ¡most ¡irradiance ¡caching ¡algorithms ¡for ¡20+ ¡years
  • Fix-­‑ups ¡to ¡original ¡metric ¡lead ¡to ¡many ¡parameters
  • ­‑ error ¡threshold
  • ­‑ min/max ¡screen-­‑space ¡radii
  • ­‑ min/max ¡world-­‑space ¡radii
  • ­‑ gradient ¡clamping
  • ­‑ ...
  • Hard ¡to ¡control!

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-88
SLIDE 88

Be`er ¡Error ¡Control

53

  • total ¡error ¡ϵt ¡= ¡integrated ¡difference ¡between ¡

extrapolated ¡and ¡correct ¡irradiance

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-89
SLIDE 89

✏t = Z Ri

Ri

|E(xi + x) − E0(xi + x)| dx

Be`er ¡Error ¡Control

53

  • total ¡error ¡ϵt ¡= ¡integrated ¡difference ¡between ¡

extrapolated ¡and ¡correct ¡irradiance

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-90
SLIDE 90

✏t = Z Ri

Ri

|E(xi + x) − E0(xi + x)| dx

Be`er ¡Error ¡Control

54

  • E’ ¡is ¡1st-­‑order ¡Taylor ¡extrapola9on

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-91
SLIDE 91

✏t = Z Ri

Ri

|E(xi + x) − E0(xi + x)| dx

Be`er ¡Error ¡Control

54

  • E’ ¡is ¡1st-­‑order ¡Taylor ¡extrapola9on
  • E ¡is ¡unknown!

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-92
SLIDE 92

✏t = Z Ri

Ri

|E(xi + x) − E0(xi + x)| dx

Be`er ¡Error ¡Control

55

  • E’ ¡is ¡1st-­‑order ¡Taylor ¡extrapola9on
  • E ¡is ¡unknown!

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-93
SLIDE 93

✏t = Z Ri

Ri

|E(xi + x) − E0(xi + x)| dx

Be`er ¡Error ¡Control

56

  • E’ ¡is ¡1st-­‑order ¡Taylor ¡extrapola9on
  • E ¡is ¡unknown!

2nd-­‑order ¡Taylor ¡extrapola2on

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-94
SLIDE 94

Hessian-­‑based ¡Error ¡Control

57

  • E’ ¡is ¡1st-­‑order ¡Taylor ¡extrapola9on
  • 2nd-­‑order ¡Taylor ¡extrapola9on ¡approximates ¡E

ˆ ✏t = 1 2 Z Ri

Ri

|x Hx(Ei) x| dx dx ≈ ✏t = Z Ri

Ri

|E(xi + x) − E0(xi + x)| dx

[Jarosz ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-95
SLIDE 95

Beyond ¡the ¡Split-­‑Sphere

Split-­‑Sphere Hessian-­‑based ~1,700 ¡Cache ¡Points

58

[Schwarzhaupt ¡et ¡al. ¡2012]

Thursday, July 16, 15

slide-96
SLIDE 96

Split-­‑Sphere ¡vs ¡Hessian-­‑based

59

500 Rcords 1K Records 2K Records 4K Records [Schwarzhaupt ¡et ¡al. ¡2012]

split-­‑sphere Hessian-­‑based

Thursday, July 16, 15

slide-97
SLIDE 97

Anisotropic ¡Cache ¡Records

60

Thursday, July 16, 15

slide-98
SLIDE 98

61

Reference Bounded Split-Sphere Occlusion Hessian

Thursday, July 16, 15

slide-99
SLIDE 99

62

Summary

  • Deriva9ves ¡can ¡es9mate ¡local ¡func9on ¡smoothness
  • Amor9ze ¡illumina9on ¡computa9on ¡across ¡many ¡pixels
  • Accoun9ng ¡for ¡occlusions ¡is ¡challenging ¡but ¡cri9cal
  • Specialized ¡techniques ¡for ¡diffuse ¡or ¡moderately ¡glossy

Thursday, July 16, 15