CS-184: Computer Graphics Lecture #3: Shading Prof. James OBrien - - PowerPoint PPT Presentation

cs 184 computer graphics
SMART_READER_LITE
LIVE PREVIEW

CS-184: Computer Graphics Lecture #3: Shading Prof. James OBrien - - PowerPoint PPT Presentation

1 CS-184: Computer Graphics Lecture #3: Shading Prof. James OBrien University of California, Berkeley V2016-F-03-1.0 2 Today Local Illumination & Shading The BRDF Simple diffuse and specular approximations Shading


slide-1
SLIDE 1

CS-184: Computer Graphics

Lecture #3: Shading

  • Prof. James O’Brien

University of California, Berkeley

V2016-F-03-1.0

1

2

Today

  • Local Illumination & Shading
  • The BRDF
  • Simple diffuse and specular approximations
  • Shading interpolation: flat, Gouraud, Phong
  • Some miscellaneous tricks

2 03-Shading.key - September 12, 2016

slide-2
SLIDE 2

3

Local Shading

  • Local: consider in isolation
  • 1 light
  • 1 surface
  • The viewer
  • Recall: lighting is linear
  • Almost always...

Counter example: photochromatic materials

3

4

Local Shading

  • Examples of non-local phenomena
  • Shadows
  • Reflections
  • Refraction
  • Indirect lighting

4 03-Shading.key - September 12, 2016

slide-3
SLIDE 3

5

The BRDF

ρ(θV,θL) ρ(v,l,n)

ρ = =

  • The Bi-directional Reflectance Distribution Function
  • Given
  • Surface material
  • Incoming light direction
  • Direction of viewer
  • Orientation of surface
  • Return:
  • fraction of light that reaches the viewer
  • We’ll worry about physical units later...

5

The BRDF

6

Ideal specular

  • Perfect mirror reflection


Ideal diffuse

  • Equal reflection in all directions

Glossy specular

  • Majority of light reflected near

mirror direction Retro-reflective

  • Light reflected back towards light

source

Diagrams illustrate how light from incoming direction is reflected in various outgoing directions.

Ren Ng

6 03-Shading.key - September 12, 2016

slide-4
SLIDE 4

7

The BRDF

ρ(v,l,n) ˆ v ˆ l ˆ n

  • Spatial variation capture by “the material”
  • Frequency dependent
  • Typically use separate RGB functions
  • Does not work perfectly
  • Better:

ρ = ρ(θV,θL,λin,λout) 7

8

Obtaining BRDFs

  • Measure from real materials

Images from Marc Levoy

8 03-Shading.key - September 12, 2016

slide-5
SLIDE 5

9

Obtaining BRDFs

  • Measure from real materials
  • Computer simulation
  • Simple model + complex geometry
  • Derive model by analysis
  • Make something up

9

10

Beyond BRDFs

  • The BRDF model does not capture everything
  • e.g. Subsurface scattering (BSSRDF)

Images from Jensen et. al, SIGGRAPH 2001

10 03-Shading.key - September 12, 2016

slide-6
SLIDE 6

11

Beyond BRDFs

  • The BRDF model does not capture everything
  • e.g. Inter-frequency interactions

ρ = ρ(θV,θL,λin,λout)This version would work....

11

12

A Simple Model

  • Approximate BRDF as sum of
  • A diffuse component
  • A specular component
  • A “ambient” term

+ =

+

12 03-Shading.key - September 12, 2016

slide-7
SLIDE 7

13

Diffuse Component

  • Lambert’s Law
  • Intensity of reflected light proportional to cosine of angle between

surface and incoming light direction

  • Applies to “diffuse,” “Lambertian,” or “matte” surfaces
  • Independent of viewing angle
  • Use as a component of non-Lambertian surfaces

13

14

Diffuse Component

l n

  • Steve Marschner

Top face of cube
 receives a certain 
 amount of light Top face of 
 60º rotated cube
 intercepts half the light In general, light per unit
 area is proportional to
 cos θ = l • n

14 03-Shading.key - September 12, 2016

slide-8
SLIDE 8

15

Diffuse Component

kdI(ˆ l· ˆ n)

Comment about two-side lighting in text is wrong...

max(kdI(ˆ l· ˆ n),0)

15

16

Diffuse Component

  • Plot light leaving in a given direction:
  • Plot light leaving from each point on surface

16 03-Shading.key - September 12, 2016

slide-9
SLIDE 9

17

Specular Component

  • Specular component is a mirror-like reflection
  • Phong Illumination Model
  • A reasonable approximation for some surfaces
  • Fairly cheap to compute
  • Depends on view direction

17

18

Specular Component

ksI(ˆ r· ˆ v)p

ksI max(ˆ r· ˆ v,0)p

L R V N

18 03-Shading.key - September 12, 2016

slide-10
SLIDE 10

19

Specular Component

  • Computing the reflected direction

ˆ r = −ˆ l+2(ˆ l· ˆ n)ˆ n

n l r

  • l

θ n cos θ n cos θ

19

20

Specular Component

  • “Half-angle” approximation for specular

n l h ω e

ˆ h = ˆ l+ ˆ v ||ˆ l+ ˆ v||

*Don’t use half-angle approximation in your assignments!

ksI(ˆ h · ˆ n)p

different specular term

20 03-Shading.key - September 12, 2016

slide-11
SLIDE 11

21

Specular Component

  • Plot light leaving in a given direction:
  • Plot light leaving from each point on surface

21

22

Specular Component

  • Specular exponent sometimes called “roughness”

n=1 n=2 n=4 n=8 n=256 n=128 n=64 n=32 n=16

22 03-Shading.key - September 12, 2016

slide-12
SLIDE 12

23

Ambient Term

  • Really, its a cheap hack
  • Accounts for “ambient, omnidirectional light”
  • Without it everything looks like it’s in space

23

24

Summing the Parts

  • Recall that the are by wavelength
  • RGB in practice
  • Sum over all lights

R = kaI +kdI max(ˆ l· ˆ n,0)+ksI max(ˆ r· ˆ v,0)p

k? +

= +

24 03-Shading.key - September 12, 2016

slide-13
SLIDE 13

25

Anisotropy

25

26

Metal -vs- Plastic

26 03-Shading.key - September 12, 2016

slide-14
SLIDE 14

27

Metal -vs- Plastic

27

28

Other Color Effects

28 03-Shading.key - September 12, 2016

slide-15
SLIDE 15

Materials: Diffuse

Ren Ng

29

Materials: Plastic

Ren Ng

30 03-Shading.key - September 12, 2016

slide-16
SLIDE 16

Materials: Paint

Ren Ng

31

Materials: Paint

Ren Ng

32 03-Shading.key - September 12, 2016

slide-17
SLIDE 17

Materials: Mirror

Ren Ng

33

Materials: Metallic

Ren Ng

34 03-Shading.key - September 12, 2016

slide-18
SLIDE 18

35

Other Color Effects

Images from Gooch et. al, 1998 + =

pure blue to yellow pure black to object color darken select final tone

35

36

Measured BRDFs

Images from Cornell University Program of Computer Graphics

BRDFs for automotive paint

36 03-Shading.key - September 12, 2016

slide-19
SLIDE 19

37

Measured BRDFs

Images from Cornell University Program of Computer Graphics

BRDFs for aerosol spray paint

37

38

Measured BRDFs

Images from Cornell University Program of Computer Graphics

BRDFs for house paint

38 03-Shading.key - September 12, 2016

slide-20
SLIDE 20

39

Measured BRDFs

Images from Cornell University Program of Computer Graphics

BRDFs for lucite sheet

39

Ashikhmin-Shirley BRDF

  • More realistic specular term (for some materials)
  • Anisotropic specularities
  • Fresnel behavior (grazing angle highlights)
  • Energy preserving diffuse term
  • Sum of diffuse and specular terms (as before)

Michael Ashikhmin and Peter Shirley. 2000. An anisotropic phong BRDF model. J. Graph. Tools 5, 2 (February 2000), 25-32.
 https://www.cs.utah.edu/~shirley/papers/jgtbrdf.pdf

40

ρ(ˆ l, ˆ v) = ρd(ˆ l, ˆ v) + ρs(ˆ l, ˆ v)

40 03-Shading.key - September 12, 2016

slide-21
SLIDE 21

Ashikhmin-Shirley BRDF

41

F(ˆ h · ˆ e) = Ks + (1 − Ks)(1 − (ˆ h · ˆ e))5 ρs(ˆ l,ˆ e) = p (pu + 1)(pv + 1) 8π (ˆ n · ˆ h)pu cos2 φ+pv sin2 φ (ˆ h · ˆ e) max ⇣ (ˆ n · ˆ e), (ˆ n ·ˆ l) ⌘F(ˆ h · ˆ e) Light direction Viewer (eye) direction Specular powers Normal Half angle Specular coefficient (color) Parametric directions

ˆ l ˆ e pu, pv ˆ n ˆ h Ks ˆ u, ˆ v

41

Ashikhmin-Shirley BRDF

42

ρs(ˆ l,ˆ e) = p (pu + 1)(pv + 1) 8π (ˆ n · ˆ h)

pu(ˆ h·ˆ u)2+pu(ˆ h·ˆ v)2 1−(ˆ h·ˆ n)2

(ˆ h · ˆ e) max ⇣ (ˆ n · ˆ e), (ˆ n ·ˆ l) ⌘F(ˆ h · ˆ e) F(ˆ h · ˆ e) = Ks + (1 − Ks)(1 − (ˆ h · ˆ e))5 Light direction Viewer (eye) direction Specular powers Normal Half angle Specular coefficient (color) Parametric directions

ˆ l ˆ e pu, pv ˆ n ˆ h Ks ˆ u, ˆ v

Approximate Fresnel function

42 03-Shading.key - September 12, 2016

slide-22
SLIDE 22

Ashikhmin-Shirley BRDF

43

Light direction Viewer (eye) direction Specular powers Normal Half angle Specular coefficient (color) Parametric directions

ˆ l ˆ e pu, pv ˆ n ˆ h Ks ˆ u, ˆ v

ρd(ˆ l,ˆ e) = 28Kd 23π (1 − Ks) 1 − ✓ 1 − ˆ n · ˆ e 2 ◆5! 0 @1 − 1 − ˆ n ·ˆ l 2 !51 A

Note: The Phong diffuse term (Lambertian) is independent of

  • view. But this term accounts for unavailable light due to

specular/Fresnel reflection.

43

Ashikhmin-Shirley BRDF

44

44 03-Shading.key - September 12, 2016

slide-23
SLIDE 23

Ashikhmin-Shirley BRDF

45

45

Ashikhmin-Shirley BRDF

46

nv = 10000 nv = 1000 nv = 100 nv = 10 nu = 10 nu = 100 nu = 1000 nu = 10000

46 03-Shading.key - September 12, 2016

slide-24
SLIDE 24

47

Details Beget Realism

  • The “computer generated” look is often due to a lack of

fine/subtle details... a lack of richness.

From bustledress.com

47

48

Details Beget Realism

48 03-Shading.key - September 12, 2016

slide-25
SLIDE 25

49

Direction -vs- Point Lights

  • For a point light, the light direction changes over the

surface

  • For “distant” light, the direction is constant
  • Similar for orthographic/perspective viewer

49

50

Falloff

r intensity
 here: I/r2 I 1 intensity
 here: Steve Marschner

50 03-Shading.key - September 12, 2016

slide-26
SLIDE 26

51

Falloff

  • Physically correct: light intensify falloff
  • Tends to look bad (why?)
  • Not used in practice
  • Sometimes compromise of used

1/r2 1/r 51

52

Spot and Other Lights

  • Other calculations for useful

effects

  • Spot light
  • Only light certain objects
  • Negative lights
  • etc.

52 03-Shading.key - September 12, 2016

slide-27
SLIDE 27

53

Ugly....

53

54

Ugly....

54 03-Shading.key - September 12, 2016

slide-28
SLIDE 28
  • The normal vector at a point on a surface is perpendicular

to all surface tangent vectors

  • For triangles normal given by right-handed cross product

55

Surface Normals

55

56

Flat Shading

  • Use constant normal for each triangle (polygon)
  • Polygon objects don’t look smooth
  • Faceted appearance very noticeable, especially at specular highlights
  • Recall mach bands...

56 03-Shading.key - September 12, 2016

slide-29
SLIDE 29

57

Smooth Shading

  • Compute “average” normal at vertices
  • Interpolate across polygons
  • Use threshold for “sharp” edges
  • Vertex may have different normals for each face

57

Smooth Shading

58

58 03-Shading.key - September 12, 2016

slide-30
SLIDE 30

Smooth Shading

59

From blender.stackexchange.com

59

60

Gouraud Shading

  • Compute shading at each vertex
  • Interpolate colors from vertices
  • Pros: fast and easy, looks smooth
  • Cons: terrible for specular reflections

Flat Gouraud

Note: Gouraud was hardware rendered...

60 03-Shading.key - September 12, 2016

slide-31
SLIDE 31

61

Gouraud

Phong Shading

  • Compute shading at each pixel
  • Interpolate normals from vertices
  • Pros: looks smooth, better speculars
  • Cons: expensive

Phong

Note: Gouraud was hardware rendered...

61 03-Shading.key - September 12, 2016