Microfacet models for refraction through rough surfaces Bruce - - PowerPoint PPT Presentation

microfacet models for refraction through rough surfaces
SMART_READER_LITE
LIVE PREVIEW

Microfacet models for refraction through rough surfaces Bruce - - PowerPoint PPT Presentation

Microfacet models for refraction through rough surfaces Bruce Walter Steve Marschner Hongsong Li Ken Torrance Cornell University Program of Computer Graphics Diffuse transmission measured transmission ground glass interface n = 1.51 1 5


slide-1
SLIDE 1

Microfacet models for refraction through rough surfaces

Bruce Walter Steve Marschner Hongsong Li Ken Torrance Cornell University Program of Computer Graphics

slide-2
SLIDE 2

Diffuse transmission

slide-3
SLIDE 3

10 5 1

measured transmission ground glass interface n = 1.51

slide-4
SLIDE 4

10 5 1

measured transmission ground glass interface n = 1.51

slide-5
SLIDE 5

10 5 1

measured transmission ground glass interface n = 1.51

slide-6
SLIDE 6

10 5 1

measured transmission ground glass interface n = 1.51

slide-7
SLIDE 7

10 5 1

measured transmission ground glass interface n = 1.51

slide-8
SLIDE 8

10 5 1

measured transmission ground glass interface n = 1.51 critical angle

slide-9
SLIDE 9

Prior work

Microfacet models in graphics

  • Blinn 1977 introduced Torrance-Sparrow model
  • Cook & Torrance 1982 Torrance-Sparrow specular
  • Ashikhmin et al. 2000 microfacet BRDF generator
  • Stam 2001 skin subsurface scattering model

Work outside graphics we build on

  • Smith 1967 shadowing–masking framework
  • Nee & Nee 2004 single-interface measurement idea
slide-10
SLIDE 10

Contributions

Microfacet transmission model

  • new geometric formulation
  • clean, simple generalization of reflection

Microfacet distribution functions

  • evaluate three choices against data
  • new GGX distribution fits some surfaces better

Importance sampling Measurement and validation

  • single interface transmission
slide-11
SLIDE 11
slide-12
SLIDE 12

air dielectric microsurface macrosurface

Microfacet scattering models

Assumptions

  • rough dielectric surface
  • single scattering

m n

slide-13
SLIDE 13

Microfacet reflection models

Incident irradiance Ei illuminates macrosurface area dA from direction i.

i

dA Ei

slide-14
SLIDE 14

Microfacet reflection models

Incident irradiance Ei illuminates macrosurface area dA from direction i. Reflected radiance Lr measured at direction o in solid angle dωo.

dωo

  • i

Bidirectional Reflectance Distribution Function: fr(i, o) = Lr

Ei Ei Lr

slide-15
SLIDE 15

Microfacet reflection models

Incident irradiance Ei illuminates macrosurface area dA from direction i. Reflected radiance Lr measured at direction o in solid angle dωo.

i

Bidirectional Reflectance Distribution Function: fr(i, o) = Lr

Ei Ei

Bidirectional Transmittance Distribution Function: ft(i, o) = Lt

Ei

Lt dωo

slide-16
SLIDE 16

fr(i, o) = F(i, m) D(m) G(i, o, m) 4|i·n| |o·n|

Reflection to transmission

Traditional microfacet reflection model:

slide-17
SLIDE 17

geometric

fr(i, o) = F(i, m) D(m) G(i, o, m) 4|i·n| |o·n|

Reflection to transmission

We generalize the geometric analysis dealing with the surface area where scattering occurs. Traditional microfacet reflection model:

  • ptical
slide-18
SLIDE 18

G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

slide-19
SLIDE 19

G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • h gives the one microsurface normal m

that will scatter light from i to o.

slide-20
SLIDE 20

m

G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • m=h(i,o)

h gives the one microsurface normal m that will scatter light from i to o.

  • selects m
slide-21
SLIDE 21

dωm m G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • m=h(i,o)

h gives the one microsurface normal m that will scatter light from i to o.

dωo

  • selects m
  • determines size of dωm
slide-22
SLIDE 22

dωm m G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • h gives the one microsurface normal m

that will scatter light from i to o.

slide-23
SLIDE 23

D measures density of microsurface area with respect to microsurface normal m.

dωm m G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • h gives the one microsurface normal m

that will scatter light from i to o.

slide-24
SLIDE 24

D measures density of microsurface area with respect to microsurface normal m.

dA dAm dωm

m

dAm = ) D(m) dωm dA G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • h gives the one microsurface normal m

that will scatter light from i to o.

slide-25
SLIDE 25

D measures density of microsurface area with respect to microsurface normal m.

dA dAm dωm

m

G measures the fraction of points with microsurface normal m that are visible.

dAm = ) D(m) dωm dA G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • h gives the one microsurface normal m

that will scatter light from i to o.

slide-26
SLIDE 26

D measures density of microsurface area with respect to microsurface normal m.

dA dAm dωm

m

G measures the fraction of points with microsurface normal m that are visible.

dAm = ) D(m) dωm dA = G(i, o, m) G(i, o, m)

shadowing–masking

D(m)

normal distribution

h(i, o)

“half-vector” function

i

  • h gives the one microsurface normal m

that will scatter light from i to o.

slide-27
SLIDE 27

fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) dAm dA dωo

For reflection or transmission:

h(i, o)

“half-vector” function

dAm = G(i, o, m) D(m) dωm dA G(i, o, m)

shadowing–masking

D(m)

normal distribution

slide-28
SLIDE 28

fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) D(m) G(i, o, m) dωm dωo

For reflection or transmission:

h(i, o)

“half-vector” function

dAm = G(i, o, m) D(m) dωm dA G(i, o, m)

shadowing–masking

D(m)

normal distribution

slide-29
SLIDE 29

fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) D(m) G(i, o, m) dωm dωo

easy to generalize

For reflection or transmission:

h(i, o)

“half-vector” function

dAm = G(i, o, m) D(m) dωm dA G(i, o, m)

shadowing–masking

D(m)

normal distribution

slide-30
SLIDE 30

fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) D(m) G(i, o, m) dωm dωo

key contribution easy to generalize

For reflection or transmission:

h(i, o)

“half-vector” function

dAm = G(i, o, m) D(m) dωm dA G(i, o, m)

shadowing–masking

D(m)

normal distribution

slide-31
SLIDE 31

i

  • m

i + o parallel to m

Construction of half-vector

reflection refraction

slide-32
SLIDE 32

i

  • m

i + o parallel to m

Construction of half-vector

reflection refraction

hr = normalize(i + o)

slide-33
SLIDE 33

i

  • m

i

  • m

i + o parallel to m

Construction of half-vector

reflection refraction

hr = normalize(i + o)

slide-34
SLIDE 34

i

  • m

i m

i + o parallel to m

Construction of half-vector

no

parallel to m

i + no

reflection refraction

hr = normalize(i + o)

slide-35
SLIDE 35

i

  • m

i m

i + o parallel to m

Construction of half-vector

no

parallel to m

i + no

reflection refraction

hr = normalize(i + o) ht = −normalize(i + no)

slide-36
SLIDE 36

i

  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no)

slide-37
SLIDE 37

i

  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no)

slide-38
SLIDE 38

i

  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) dωo

slide-39
SLIDE 39

i

  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr dωo

slide-40
SLIDE 40

i

  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr dωm = |o · hr| i + o2 dωo dωm dωo

slide-41
SLIDE 41

i

  • i
  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr dωm = |o · hr| i + o2 dωo dωm dωo dωo

slide-42
SLIDE 42

i

  • i
  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr dωm = |o · hr| i + o2 dωo dωm no dωo dωo

slide-43
SLIDE 43

i

  • i
  • dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr n2dωo dωm = |o · hr| i + o2 dωo dωm no dωo dωo

slide-44
SLIDE 44

i

  • i
  • ht

dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr n2dωo dωm = |o · hr| i + o2 dωo dωm no dωo dωo

slide-45
SLIDE 45

i

  • i
  • ht

dωo

reflection refraction

Construction of half-vector solid angle

hr = normalize(i + o) ht = −normalize(i + no) hr n2dωo dωm = |o · hr| i + o2 dωo dωm no dωm dωo dωo

  • dωm =

|o · ht| i + no2 n2dωo

slide-46
SLIDE 46

Result: scattering functions

reflection transmission

fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) D(m) G(i, o, m) dωm dωo fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) D(m) G(i, o, m) dωm dωo

slide-47
SLIDE 47

Result: scattering functions

reflection transmission

fs(i, o) = |i · m| |i · n| |o · n| ρ(i, o) D(m) G(i, o, m) dωm dωo fr(i, o) = |i·hr| |i·n| |o·n| F(i, hr) D(hr) G(i, o, hr) |o·hr| i + o2

slide-48
SLIDE 48

Result: scattering functions

reflection transmission

fr(i, o) = |i·hr| |i·n| |o·n| F(i, hr) D(hr) G(i, o, hr) |o·hr| i + o2 ft(i, o) = |i·ht| |i·n| |o·n| (1 − F(i, ht)) D(ht) G(i, o, ht) n2|o·ht| i + no2

slide-49
SLIDE 49

Result: scattering functions

reflection transmission

fr(i, o) = |i·hr| |o·hr| |i·n| |o·n| F(i, hr) D(hr) G(i, o, hr) i + o2 ft(i, o) = |i·ht| |i·n| |o·n| (1 − F(i, ht)) D(ht) G(i, o, ht) n2|o·ht| i + no2

slide-50
SLIDE 50

Result: scattering functions

reflection transmission

fr(i, o) = |i·hr| |o·hr| |i·n| |o·n| F(i, hr) D(hr) G(i, o, hr) i + o2 ft(i, o) = |i·ht| |o·ht| |i·n| |o·n| n2(1 − F(i, ht)) D(ht) G(i, o, ht) i + no2

slide-51
SLIDE 51

Result: scattering functions

reflection transmission

fr(i, o) = F(i, hr) D(hr) G(i, o, hr) 4|i·n| |o·n| ft(i, o) = |i·ht| |o·ht| |i·n| |o·n| n2(1 − F(i, ht)) D(ht) G(i, o, ht) i + no2

slide-52
SLIDE 52
slide-53
SLIDE 53

8 20 –20 40 –40

Normal distributions

Phong

Choice of distribution is determined by surface

  • Phong describes same surfaces as Beckman
  • new GGX distribution fits some surfaces better
  • analytical Smith shadowing–masking

D(θm)

slide-54
SLIDE 54

8 20 –20 40 –40

Normal distributions

Phong Beckman

Choice of distribution is determined by surface

  • Phong describes same surfaces as Beckman
  • new GGX distribution fits some surfaces better
  • analytical Smith shadowing–masking

D(θm)

slide-55
SLIDE 55

8 20 –20 40 –40

Normal distributions

Phong Beckman GGX (new)

Choice of distribution is determined by surface

  • Phong describes same surfaces as Beckman
  • new GGX distribution fits some surfaces better
  • analytical Smith shadowing–masking

D(θm)

slide-56
SLIDE 56

8 20 –20 40 –40

Normal distributions

Phong Beckman GGX (new)

Choice of distribution is determined by surface

  • Phong describes same surfaces as Beckman
  • new GGX distribution fits some surfaces better
  • analytical Smith shadowing–masking

1 90 –90

D(θm) G1(θi,o)

slide-57
SLIDE 57

Importance sampling

Sampling procedure

  • choose normal according to D(m) |m • n|

explicit formulas in paper

  • compute o by reflection or refraction
  • compute pdf of o using dωm/dωo

leaves G and some cosines for the weight

  • can adjust sampling roughness to control weight
slide-58
SLIDE 58
slide-59
SLIDE 59

Measuring transmission

slide-60
SLIDE 60

Measuring transmission

slide-61
SLIDE 61

Measuring transmission

slide-62
SLIDE 62

Measuring transmission

slide-63
SLIDE 63

Measuring transmission

slide-64
SLIDE 64

Measuring transmission

slide-65
SLIDE 65

Measuring transmission

slide-66
SLIDE 66

Measuring transmission

slide-67
SLIDE 67

Measurement setup

slide-68
SLIDE 68

Validation: ground glass

120 150 180 210 240 270 1 2 3 4 5 Θi 120 150 180 210 240 270 1 2 3 4 5 Θi

BSDF θt θt 0° GGX fit

Fit is to normal incidence data only

0° Beckman fit

slide-69
SLIDE 69

Validation: ground glass

120 150 180 210 240 270 1 2 3 4 5 Θi 120 150 180 210 240 270 1 2 3 4 5 Θi

BSDF θt θt 0° GGX fit

Fit is to normal incidence data only

0° Beckman fit

slide-70
SLIDE 70

Validation: ground glass

120 150 180 210 240 270 1 2 3 4 5 Θi 120 150 180 210 240 270 1 2 3 4 5 Θi

BSDF θt θt 0° GGX fit

Fit is to normal incidence data only

30° 60° 80° 0° 30° 60° 80° Beckman fit

slide-71
SLIDE 71

Validation: “frosted” glass

BSDF θt θt GGX fit

Fit is to normal incidence data only

120 150 180 210 240 270 1 2 3 4 5 Θi 120 150 180 210 240 270 1 2 3 4 5 Θi

Beckman fit

slide-72
SLIDE 72

Validation: acid-etched glass

BSDF θt θt GGX fit

Fit is to normal incidence data only

120 150 180 210 240 270 0.5 1 1.5 2 2.5 3 3.5 Θi 120 150 180 210 240 270 0.5 1 1.5 2 2.5 3 3.5 Θi

Beckman fit

slide-73
SLIDE 73

Validation: antiglare glass

BSDF θt θt GGX fit Beckman fit

Fit is to normal incidence data only

120 150 180 210 240 270 200 400 600 800 1000 1200 Θi 120 150 180 210 240 270 200 400 600 800 1000 1200 Θi

slide-74
SLIDE 74

Transmission through rough glass

anti-glare glass Beckman, αb = 0.023 ground glass GGX, αg = 0.394 acid-etched glass GGX, αg = 0.553

slide-75
SLIDE 75

Etched globe

slide-76
SLIDE 76

Contributions

Microfacet transmission model

  • new geometric formulation
  • clean, simple generalization of reflection

Microfacet distribution functions

  • evaluate three choices against data
  • new GGX distribution fits some surfaces better

Importance sampling Measurement and validation

  • single interface transmission
slide-77
SLIDE 77

Acknowledgments

Steve Westin initial measurement idea NSF grants ACI-0205438, CNS-0615240 NSF CAREER CCF-0347303 Alfred P. Sloan Research Fellowship Intel Corporation equipment donation