7/30/2019 11 Shading
1/18
Machiraju/Zhang/Mller
Shading
CMPT 361
Introduction to Computer GraphicsTorsten Mller
7/30/2019 11 Shading
2/18
Machiraju/Zhang/Mller
2
Reading
Chapter 5.5 - Angel
Chapter 16 - Foley, van Dam, et al
7/30/2019 11 Shading
3/18
Machiraju/Zhang/Mller
3
Shading
Illumination Model: determine the color of a
surface (data) point by simulating some light
attributes.
Local IM: deals only with isolated surface
(data) point and direct light sources.
Global IM: takes into account the
relationships between all surfaces (points) inthe environment.
Shading Model: applies the illumination models
at a set of points and colors the whole scene.
7/30/2019 11 Shading
4/18
Machiraju/Zhang/Mller
4
Shading of surfaces
We can shade a point on a surface using a
local IM
How about surfaces? Flat (planar) polygons are computationally
attractive
Normals, intersections, visibility, projections, etc.,
are all easy to compute hardware acceleration available
Curved surfaces are often tessellated into many
small flat polygons in graphics polygonal
meshes
7/30/2019 11 Shading
5/18
Machiraju/Zhang/Mller
5
Polygonal meshes
Composed of a set of polygons (often
quadrilaterals or triangles) pasted along
their edges
The dominant surface model for 3D shapes
(esp. free-form shapes), e.g., in games
Well, now there are points
7/30/2019 11 Shading
6/18
Machiraju/Zhang/Mller
6
Shading of flat polygons
Flat (constant, faceted) shading
compute illumination once per polygon and
apply it to whole polygon:
glShadeModel(GL_FLAT)
Interpolated/smooth/Gouraud shading
compute illumination at borders (e.g. vertices)
and interpolate: glShadeModel(GL_SMOOTH) Accurate shading e.g., Phong shading
compute illumination at every point of the
polygon
7/30/2019 11 Shading
7/18
Machiraju/Zhang/Mller
7
Flat shading
N1
N2
A single color across the polygon efficient
Intensity discontinuity across edges
Flat shading would be correct if
Light source is at infinity, i.e., light vector
l is constant, so nl is constant across polygon, and
viewer is at infinity, so rv is constant across polygon,
and
polygons represent actual surface, not an approximation
Also, if there are a very large number of very
small polygons, the faceting effects is less obvious
spatial integration of our eyes
7/30/2019 11 Shading
8/18
Machiraju/Zhang/Mller
8
Results of flat shading
7/30/2019 11 Shading
9/18
Machiraju/Zhang/Mller
9
Mach Banding
Creates discontinuities in colour
easily visible
hence we can see the distinct surface patcheseasily
Machbands!
caused by lateral
inhibition of thereceptors in the eye
7/30/2019 11 Shading
10/18
Machiraju/Zhang/Mller
10
Mach Banding (2)
Problems - Machbands!
7/30/2019 11 Shading
11/18
Machiraju/Zhang/Mller
11
Gouraud shading
This shading model is interpolative:
Given colors of the polygon vertices, interior
points are colored through bilinear interpolation
How to compute the normal at a mesh
vertex?
E.g., take the (normalized) average of the
normals of adjacent faces
Also, area weighted normals
7/30/2019 11 Shading
12/18
7/30/2019 11 Shading
13/18
Machiraju/Zhang/Mller
13
Flat vs. Gouraud Shading
Gouraud ShadingFlat Shading
7/30/2019 11 Shading
14/18
Machiraju/Zhang/Mller
14
Phong shading
Gouraud shading does not properly handle
specular highlights because of color interpolation
Phong shading accurate shading
Interpolates normals at each point instead of colors
Apply LIM at each point according to approximated
normal
7/30/2019 11 Shading
15/18
Machiraju/Zhang/Mller
15
Phong vs. Gouraud shading
Phong shading:
Handles specular highlights much better
Does a better job in handling Mach bands But much more expensive than Gouraud
shading
7/30/2019 11 Shading
16/18
Machiraju/Zhang/Mller
16
Further problems with shading
models so far (1) Polygonal silhouette we are quite sensitive
in picking these up
Solution: subdivide further Exercise: How to determine
whether an edge in a mesh
is a silhouette edge?
7/30/2019 11 Shading
17/18
Orientation dependence
Note first that interpolation is done along
horizontal scanlines
When the orientation of the same polygon
changes, the same point p may be colored
differently
Solution: triangulate
Machiraju/Zhang/Mller
17
Further problems with shading
models so far (2)
7/30/2019 11 Shading
18/18
Machiraju/Zhang/Mller
18
Further problems with shading
models so far (3) Unrepresentative normals
As shown, all vertex and interpolated normals
are the same
Solution: subdivide further