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
© Copyright 2026 Paperzz