Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 52

Chapter 6

Shading

1
Objectives
 Learn to shade objects so their images appe
ar three-dimensional
 Introduce the types of light-material interac
tions
 Build a simple reflection model---the Phon
g model--- that can be used with real time g
raphics hardware

2
Why we need shading
 Suppose we build a model of a sphere usin
g many polygons and color it with glColo
r. We get something like

 But we want

3
Shading
 Why does the image of a real sphere look like

 Light-material interactions cause each point to have


a different color or shade
 Need to consider
 Light sources
 Material properties
 Location of viewer
 Surface orientation
4
Scattering
 Light strikes A
 Some scattered
 Some absorbed
 Some of scattered light strikes B
 Some scattered
 Some absorbed
 Some of this scatterd
light strikes A
and so on
5
Rendering Equation
 The infinite scattering and absorption of
light can be described by the rendering
equation
 Cannot be solved in general
 Ray tracing is a special case for perfectly
reflecting surfaces
 Rendering equation is global and includes
 Shadows
 Multiple scattering from object to object

6
Global Effects
shadow

multiple reflection
translucent surface

7
Local versus Global Rendering
 Correct shading requires a global calculation
involving all objects and light sources
 Incompatible with pipeline model which shades
each polygon independently (local rendering)
 However, in computer graphics, especially
real time graphics, we are happy if things
“look right”
 Exist many techniques for approximating global
effects

8
Computer Viewing

9
Light-Material Interaction
 Light that strikes an object is partially absorbed
and partially scattered (reflected)
 The amount reflected determines the color and
brightness of the object
 A surface appears red under white light because the
red component of the light is reflected and the rest is
absorbed
 The reflected light is scattered in a manner that
depends on the smoothness and orientation of the
surface
10
Surface Types
 The smoother a surface, the more reflected
light is concentrated in the direction a
perfect mirror would reflected the light
 A very rough surface scatters light in all
directions

specular diffuse translucent

11
Light Sources
 Each point on the light source:
I(x, y, z, , , )
 General light sources are difficult to work
with because we must integrate light
coming from all points on the source

12
Color Sources
 Consider a light source through a three-
component intensity or luminance function

 Ir 

I  Ig 
 
 I b 

13
Simple Light Sources – 1/3
 Ambient light
 Same amount of light everywhere in scene
 Can model contribution of many sources and
reflecting surfaces

 I ar 

I a  I ag 
 
 I ab 

14
Simple Light Sources – 2/3
 Point source
 Model with position and color
 Distant source = infinite distance away (parallel)
 Replacing a point by a direction vector

umbra

penumbra
15
Simple Light Sources – 3/3
 Spotlight
 Restrict light from ideal point source


  
 

I  cose 
16
Phong Model
 A simple model that can be computed rapidly
 Has three components
 Diffuse
 Specular
 Ambient
 Uses four vectors
 To source
 To viewer
 Normal
 Perfect reflector

17
Light Sources
 In the Phong Model, we add the results fro
m each light source
 Each light source has separate diffuse, spec
ular, and ambient terms to allow for maxim
um flexibility even though this form does n
ot have a physical justification
 Separate red, green and blue components
 Hence, 9 coefficients for each point source
 Idr, Idg, Idb, Isr, Isg, Isb, Iar, Iag, Iab
18
Material Properties
 Material properties match light source prop
erties
 Nine absorbtion coefficients
 kdr, kdg, kdb, ksr, ksg, ksb, kar, kag, kab

 Shininess coefficient 

19
Ambient Reflection
 Ambient light is the result of multiple inter
actions between (large) light sources and th
e objects in the environment
 Amount and color depend on both the color
of the light(s) and the material properties of
the object
 Add ka Ia to diffuse and specular terms

reflection coef intensity of ambient light


20
Diffuse Reflection – 1/2
 Perfectly diffuse reflector
(Lambertian Surface)
 Light scattered equally in all directions

Rough Surface
21
Diffuse Reflection – 2/2
 Amount of light reflected is proportional to the v
ertical component of incoming light
 reflected light ~cos i
 cos i = l · n if vectors normalized
 There are also three coefficients, kr, kb, kg that show
how much of each color component is reflected

22
Specular Surfaces
 Most surfaces are neither ideal diffusers nor perfe
ctly specular (ideal refectors)
 Smooth surfaces show specular highlights due to
incoming light being reflected in directions conce
ntrated close to the direction of a perfect reflectio
n

specular
highlight

23
Modeling Specular Reflections
 Phong proposed using a term that dropped
off as the angle between the viewer and the
ideal reflection increased

Ir ~ ks I cos


reflected shininess coef
intensity incoming intensity
absorption coef
24
The Shininess Coefficients
 Values of  between 100 and 200 correspond to
metals
 Values between 5 and 10 give surface that look
like plastic

cos 

-90  90
25
Distance Terms
 The light from a point source that reaches a surfac
e is inversely proportional to the square of the dis
tance between them
 We can add a factor of the

form 1/(ad + bd +cd2) to


the diffuse and specular
terms
 The constant and linear terms soften the effect of
the point source
26
Examples
Only differences in
these teapots are
the parameters
in the Phong model

27
Computation of Vectors
 Normal vectors
 Reflection vector

28
Normal for Triangle

n
plane n ·(p - p0 ) = 0 p2

p
p1
normalize n  n/ |n| p0

Note that right-hand rule determines outward face

29
Normal for Sphere

Tangent plane to a sphere

30
Ideal Reflector
 Normal is determined by local orientation
 Angle of incidence = angle of relection
 The three vectors must be coplanar

r = 2 (l · n ) n - l

31
Halfway Vector


x

l v    x  
h
|l v|
    x  2  
32
Transmitted Light
Snell’s Law:
sin  l nt l

sin  t nl
l 2
cos t  1  ( ) (1  cos  t )
2 2

t
1  nl  t
t   l   cos t  cos l n
n  nt 

33
Critical Angle

34
Polygonal Shading
 Shading calculations are done for each vert
ex
 Vertex colors become vertex shades
 By default, vertex colors are interpolated a
cross the polygon
 glShadeModel(GL_SMOOTH);
 If we use glShadeModel(GL_FLAT); the
color at the first vertex will determine the c
olor of the whole polygon
35
Flat Shading
 Polygons have a single normal
 Shades at the vertices as computed by the Phon
g model can be almost same
 Identical for a distant viewer (default) or if ther
e is no specular component
 Consider model of sphere
 Want different normals at
each vertex even though
this concept is not quite
correct mathematically
36
Smooth Shading
 We can set a new
normal at each vertex
 Easy for sphere model
 If centered at origin n = p
 Now smooth shading
works
 Note silhouette edge

37
Mesh Shading – 1/2
 The previous example is not general becau
se we knew the normal at each vertex analy
tically
 For polygonal models, Gouraud proposed
we use the average of normals around a me
sh vertex
n1  n 2  n 3  n 4
n
| n1  n 2  n 3  n 4 |

38
Mesh Shading – 2/2

39
Gouraud and Phong Shading
 Gouraud Shading
 Find average normal at each vertex (vertex normals)
 Apply Phong model at each vertex
 Interpolate vertex shades across each polygon
 Phong shading
 Find vertex normals
 Interpolate vertex normals across edges
 Find normals along edges
 Interpolate edge normals across polygons
 Find shade from its normal for each point in the poly
gon
40
Phong Shading

41
Comparison
 If the polygon mesh approximates surfaces with a
high curvatures, Phong shading may look smooth
while Gouraud shading may show edges
 Phong shading requires much more work than Go
uraud shading
 Usually not available in real time systems
 Both need data structures to represent meshes so
we can obtain vertex normals

42
Approximation of a Sphere by
Recursive Subdivision
 Start with a tetrahedron whose four vertices
are on a unit sphere:
(0, 0, 1), (0, 2 2 / 3, - 1/3), (- 6 /3, - 2 /3, - 1/3), ( 6 /3, - 2 /3, - 1/3)

y
z
3
x
x 4 2
3 x

3
x
6 43
Recursive Subdivision – 1/3
void triangle(point3 a, point3 b, point3 c)
{
glBegin(GL_LINE_LOOP);
glVertex3fv(a);
glVertex3fv(b); 0
glVertex3fv(c);
glEnd();
} 3
Void tetrahedron()
{
triangle(v[0], v[1], v[2]);
triangle(v[3], v[2], v[1]);
1 2
triangle(v[0], v[3], v[1]);
triangle(v[0], v[2], v[3]);
}
44
Recursive Subdivision – 2/3
Bisecting angles Computing the centrum Bisecting sides

void normal(point3 p)
{
double d=0.0; Normalization
int i;
for(i=0; i<3; i++) d+=p[i]*p[i];
d=sqrt(d);
if(d>0.0) for (i=0; i<3; i++) p[i]/=d;
} 45
Recursive Subdivision – 3/3
void divide_triangle(point3 a, point3 b, point3 c, int n)
{ a
point3 v1, v2, v3;
int j;
if(n>0) { v1 v2
for(j=0; j<3; j++) v1[j]=a[j]+b[j];
normal(v1);
for(j=0; j<3; j++) v2[j]=a[j]+c[j];
normal(v2); b v3 c
for(j=0; j<3; j++) v3[j]=c[j]+b[j];
normal(v3);
divide_triangle(a, v1, v2, n-1);
divide_triangle(c, v2, v3, n-1);
divide_triangle(b, v3, v1, n-1);
divide_triangle(v1, v3, v2, n-1);
}
else
triangle(a, b, c);
}

46
Front and Back Faces
 The default is shade only front faces which works
correct for convex objects
 If we set two sided lighting, OpenGL will shaded
both sides of a surface
 Each side can have its own properties which are s
et by using GL_FRONT, GL_BACK, or GL_FRONT_
AND_BACK in glMaterialf

back faces not visible back faces visible


47
Moving Light Sources
 Light sources are geometric objects whose
positions or directions are affected by the model-
view matrix
 Depending on where we place the position
(direction) setting function, we can
 Move the light source(s) with the object(s)
 Fix the object(s) and move the light source(s)
 Fix the light source(s) and move the object(s)
 Move the light source(s) and object(s) independently

48
Transparency
 Material properties are specified as RGBA
values
 The A value can be used to make the
surface translucent
 The default is that all surfaces are opaque
regardless of A
 Later we will enable blending and use this
feature
49
Polygon Normals
 Polygons have a single normal
 Shades at the vertices as computed by the Phon
g model can be almost the same
 Identical for a distant viewer (default) or if ther
e is no specular component
 Consider model of sphere
 Want different normals at
each vertex even though
this concept is not quite
correct mathematically

50
Global Rendering

 Ray Tracing and Radiosity


 Use the original pipeline
to simulate some global
effect

51
Summary and Notes
 Why do we need shading?
 What does shading do?
 Ambient, diffuse, specular terms
 Local shading versus global shading

52

You might also like