Sie sind auf Seite 1von 18

Shading

CMPT 361 Introduction to Computer Graphics Torsten Mller


Machiraju/Zhang/Mller

Reading
Chapter 5.5 - Angel Chapter 16 - Foley, van Dam, et al

Machiraju/Zhang/Mller

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/Mller 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 at polygons in graphics polygonal Machiraju/Zhang/Mller meshes

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/Mller

Shading of at 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/Mller
6

Flat shading
A single color across the polygon efcient Intensity discontinuity across edges N1 Flat shading would be correct if
Light source is at innity, i.e., light vector l is constant, so nl is constant across polygon, and viewer is at innity, so rv is constant across polygon, and polygons represent actual surface, not an approximation N2

Also, if there are a very large number of very small polygons, the faceting effects is less obvious Machiraju/Zhang/Mller spatial integration of our eyes

Results of at shading

Machiraju/Zhang/Mller

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/Mller

Mach Banding (2)


Problems - Machbands!

Machiraju/Zhang/Mller

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/Mller Also, area weighted normals

11

Color interpolation
Interpolate colors along edges and scanlines Can be done incrementally, i.e., via scanlines

Machiraju/Zhang/Mller

12

Flat vs. Gouraud Shading


Flat Shading Gouraud Shading

Machiraju/Zhang/Mller

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/Mller 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/Mller

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/Mller

16

Further problems with shading models so far (2)


Orientation dependence
Note rst 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 (3)


Unrepresentative normals
As shown, all vertex and interpolated normals are the same

Solution: subdivide further

Machiraju/Zhang/Mller

18

Das könnte Ihnen auch gefallen