microfacet models for refraction through rough surfacesprior work microfacet models in graphics...

Post on 08-Oct-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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°

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

top related