11 Shading

Embed Size (px)

Citation preview

  • 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