361-11: Shading

Shading
CMPT 361
Introduction to Computer Graphics
Torsten Möller
© Machiraju/Zhang/Möller
Reading
• Chapter 5.5 - Angel
• Chapter 16 - Foley, van Dam, et al
© Machiraju/Zhang/Möller
2
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) in
the environment.
• Shading Model: applies the illumination models
at a set of points and colors the whole scene.
© Machiraju/Zhang/Möller
3
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
© Machiraju/Zhang/Möller
meshes
4
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
© Machiraju/Zhang/Möller
5
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
© Machiraju/Zhang/Möller
6
Flat shading
• A single color across the polygon – efficient
• Intensity discontinuity across edges
N1
• Flat shading would be correct if
N2
– Light source is at infinity, i.e., light vector
l is constant, so n⋅l is constant across polygon, and
– viewer is at infinity, so r⋅v 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
© Machiraju/Zhang/Möller
– spatial integration
of our eyes
7
Results of flat shading
© Machiraju/Zhang/Möller
8
Mach Banding
• Creates discontinuities in colour
– easily visible
– hence we can see the distinct surface patches
easily
• Machbands!
– caused by “lateral
inhibition” of the
receptors in the eye
© Machiraju/Zhang/Möller
9
Mach Banding (2)
• Problems - Machbands!
© Machiraju/Zhang/Möller
10
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
© Machiraju/Zhang/Möller
– Also, area weighted
normals
11
Color interpolation
• Interpolate colors along edges and scanlines
• Can be done incrementally, i.e., via scanlines
© Machiraju/Zhang/Möller
12
Flat vs. Gouraud Shading
Flat Shading
Gouraud Shading
© Machiraju/Zhang/Möller
13
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
© Machiraju/Zhang/Möller
14
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
© Machiraju/Zhang/Möller
15
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?
© Machiraju/Zhang/Möller
16
Further problems with shading
models so far (2)
• 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/Möller
17
Further problems with shading
models so far (3)
• Unrepresentative normals
– As shown, all vertex and interpolated normals
are the same
• Solution: subdivide further
© Machiraju/Zhang/Möller
18