Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Microfacet models for refractionthrough rough surfaces
Bruce WalterSteve Marschner
Hongsong LiKen Torrance
Cornell University Program of Computer Graphics
Diffuse transmission
10
5
1
measured transmissionground glass interfacen = 1.51
10
5
1
measured transmissionground glass interfacen = 1.51
10
5
1
measured transmissionground glass interfacen = 1.51
10
5
1
measured transmissionground glass interfacen = 1.51
10
5
1
measured transmissionground glass interfacen = 1.51
10
5
1
measured transmissionground glass interfacen = 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
mn
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
oi
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
o
fr(i,o) =F (i,m) D(m) G(i,o,m)
4|i·n| |o·n|
Reflection to transmissionTraditional 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:
optical
G(i,o,m)shadowing–masking
D(m)normal distribution
h(i,o)“half-vector” function
i
o
G(i,o,m)shadowing–masking
D(m)normal distribution
h(i,o)“half-vector” function
i
o
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
o
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
o
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
o
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
o
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.
dAdAm
d!m
m
dAm = G(i,o,m) D(m) d!m dAdAm = G(i,o,m) D(m) d!m dA
G(i,o,m)shadowing–masking
D(m)normal distribution
h(i,o)“half-vector” function
i
o
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.
dAdAm
d!m
m
G measures the fraction of points with microsurface normal m that are visible.
dAm = G(i,o,m) D(m) d!m dAdAm = G(i,o,m) D(m) d!m dA
G(i,o,m)shadowing–masking
D(m)normal distribution
h(i,o)“half-vector” function
i
o
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.
dAdAm
d!m
m
G measures the fraction of points with microsurface normal m that are visible.
dAm = G(i,o,m) D(m) d!m dAdAm = G(i,o,m) D(m) d!m dAdAm = G(i,o,m) D(m) d!m dA
G(i,o,m)shadowing–masking
D(m)normal distribution
h(i,o)“half-vector” function
i
o
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 o
m
i + o parallel to m
Construction of half-vectorreflection refraction
i o
m
i + o parallel to m
Construction of half-vectorreflection refraction
hr = normalize(i + o)
i o
m
i
o
m
i + o parallel to m
Construction of half-vectorreflection refraction
hr = normalize(i + o)
i o
m
i
m
i + o parallel to m
Construction of half-vector
no
parallel to mi + no
reflection refraction
hr = normalize(i + o)
i o
m
i
m
i + o parallel to m
Construction of half-vector
no
parallel to mi + no
reflection refraction
hr = normalize(i + o) ht = !normalize(i + no)
i o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
i o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
o
i o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
d!o
o
i o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
hr
d!o
o
i o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
hr
d!m =|o · hr|!i + o!2
d!o
d!m
d!o
o
i o
i
o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
hr
d!m =|o · hr|!i + o!2
d!o
d!m
d!o
d!o
o
i o
i
o
d!o
reflection refraction
Construction of half-vector solid angle
hr = normalize(i + o) ht = !normalize(i + no)
hr
d!m =|o · hr|!i + o!2
d!o
d!m
no
d!o
d!o
o
i o
i
o
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 + o!2
d!o
d!m
no
d!o
d!o
o
i o
i
o
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 + o!2
d!o
d!m
no
d!o
d!o
o
i o
i
o
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 + o!2
d!o
d!m
no
d!m
d!o
d!o
o
d!m =|o · ht|
!i + no!2n2d!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 + o!2
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 + o!2
ft(i,o) =|i·ht|
|i·n| |o·n| (1! F (i,ht))D(ht) G(i,o,ht)n2|o·ht|"i + no"2
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 + o!2
ft(i,o) =|i·ht|
|i·n| |o·n| (1! F (i,ht))D(ht) G(i,o,ht)n2|o·ht|"i + no"2
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 + o!2
ft(i,o) =|i·ht| |o·ht||i·n| |o·n|
n2(1! F (i,ht))D(ht) G(i,o,ht)"i + no"2
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 + no"2
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
PhongBeckman
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
PhongBeckmanGGX (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
PhongBeckmanGGX (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!o
1
2
3
4
5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.25
0.5
0.75
1
1.25
1.5
Relative distribution
120 150 180 210 240 270!o
1
2
3
4
5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.25
0.5
0.75
1
1.25
1.5
Relative distribution
BSD
F
θt θt
0°GGX fit
Fit is to normal incidence data only
0° Beckman fit
Validation: ground glass
120 150 180 210 240 270!o
1
2
3
4
5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.25
0.5
0.75
1
1.25
1.5
Relative distribution
120 150 180 210 240 270!o
1
2
3
4
5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.25
0.5
0.75
1
1.25
1.5
Relative distribution
BSD
F
θt θt
0°GGX fit
Fit is to normal incidence data only
0° Beckman fit
Validation: ground glass
120 150 180 210 240 270!o
1
2
3
4
5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.25
0.5
0.75
1
1.25
1.5
Relative distribution
120 150 180 210 240 270!o
1
2
3
4
5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.25
0.5
0.75
1
1.25
1.5
Relative distribution
BSD
F
θt θt
0°GGX fit
Fit is to normal incidence data only
30°
60°
80°
0°
30°
60°
80°
Beckman fit
Validation: “frosted” glassBS
DF
θt θt
GGX fit
Fit is to normal incidence data only
120 150 180 210 240 270!o
1
2
3
4
5Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.2
0.4
0.6
0.8
1
1.2
1.4
Relative distribution
120 150 180 210 240 270!o
1
2
3
4
5Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.2
0.4
0.6
0.8
1
1.2
1.4
Relative distribution
Beckman fit
Validation: acid-etched glassBS
DF
θt θt
GGX fit
Fit is to normal incidence data only
120 150 180 210 240 270!o
0.5
1
1.5
2
2.5
3
3.5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.2
0.4
0.6
0.8
1
Relative distribution
120 150 180 210 240 270!o
0.5
1
1.5
2
2.5
3
3.5
Measured data vs. model for !i 0, 30, 60, 80°
15 30
0.2
0.4
0.6
0.8
1
Relative distribution
Beckman fit
Validation: antiglare glassBS
DF
θt θt
GGX fit Beckman fit
Fit is to normal incidence data only
120 150 180 210 240 270!o
200
400
600
800
1000
1200
Measured data vs. model for !i 0, 30, 60, 80°
15 30
100
200
300
400Relative distribution
120 150 180 210 240 270!o
200
400
600
800
1000
1200
Measured data vs. model for !i 0, 30, 60, 80°
15 30
100
200
300
400Relative distribution
Transmission through rough glass
anti-glare glassBeckman, αb = 0.023
ground glassGGX, αg = 0.394
acid-etched glassGGX, α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
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