Microfacet models for refraction through rough surfaces Bruce - - PowerPoint PPT Presentation
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
Diffuse transmission
10 5 1
measured transmission ground glass interface n = 1.51
10 5 1
measured transmission ground glass interface n = 1.51
10 5 1
measured transmission ground glass interface n = 1.51
10 5 1
measured transmission ground glass interface n = 1.51
10 5 1
measured transmission ground glass interface n = 1.51
10 5 1
measured transmission ground glass interface n = 1.51 critical angle
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
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
air dielectric microsurface macrosurface
Microfacet scattering models
Assumptions
- rough dielectric surface
- single scattering
m n
Microfacet reflection models
Incident irradiance Ei illuminates macrosurface area dA from direction i.
i
dA Ei
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
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
fr(i, o) = F(i, m) D(m) G(i, o, m) 4|i·n| |o·n|
Reflection to transmission
Traditional microfacet reflection model:
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
G(i, o, m)
shadowing–masking
D(m)
normal distribution
h(i, o)
“half-vector” function
i
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.
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
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
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.
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.
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.
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.
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.
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
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
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
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
i
- m
i + o parallel to m
Construction of half-vector
reflection refraction
i
- m
i + o parallel to m
Construction of half-vector
reflection refraction
hr = normalize(i + o)
i
- m
i
- m
i + o parallel to m
Construction of half-vector
reflection refraction
hr = normalize(i + o)
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)
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)
i
- dωo
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = −normalize(i + no)
i
- dωo
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = −normalize(i + no)
i
- dωo
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = −normalize(i + no) dωo
i
- dωo
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = −normalize(i + no) hr dωo
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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)
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
Measuring transmission
Measuring transmission
Measuring transmission
Measuring transmission
Measuring transmission
Measuring transmission
Measuring transmission
Measuring transmission
Measurement setup
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
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
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
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
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
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
Transmission through rough glass
anti-glare glass Beckman, αb = 0.023 ground glass GGX, αg = 0.394 acid-etched glass GGX, αg = 0.553
Etched globe
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