Unformatted text preview:

Last Time Local Lighting model Diffuse illumination Specular illumination Ambient illumination 4 1 04 University of Wisconsin CS559 Spring 2004 Today Light Sources Shading Interpolation Mapping Techniques 4 1 04 University of Wisconsin CS559 Spring 2004 Light Sources Two aspects of light sources are important for a local shading model Where is the light coming from the L vector How much light is coming the I values Various light source types give different answers to the above questions Point light source Light from a specific point Directional Light from a specific direction Spotlight Light from a specific point with intensity that depends on the direction Area light Light from a continuum of points later in the course 4 1 04 University of Wisconsin CS559 Spring 2004 Point and Directional Sources Point light L x plight x plight x The L vector depends on where the surface point is located Must be normalized slightly expensive To specify an OpenGL light at 1 1 1 Glfloat light position 1 0 1 0 1 0 1 0 glLightfv GL LIGHT0 GL POSITION light position Directional light L x Llight The L vector does not change over points in the world OpenGL light traveling in direction 1 1 1 L is in opposite direction Glfloat light position 1 0 1 0 1 0 0 0 glLightfv GL LIGHT0 GL POSITION light position 4 1 04 University of Wisconsin CS559 Spring 2004 Spotlights cut off Point source but intensity depends on L direction Requires a position the location of the source glLightfv GL LIGHT0 GL POSITION light posn Requires a direction the center axis of the light glLightfv GL LIGHT0 GL SPOT DIRECTION light dir Requires a cut off how broad the beam is glLightfv GL LIGHT0 GL SPOT CUTOFF 45 0 Requires and exponent how the light tapers off at the edges of the cone Intensity scaled by L D n glLightfv GL LIGHT0 GL SPOT EXPONENT 1 0 4 1 04 University of Wisconsin CS559 Spring 2004 Shading so Far So far we have discussed illuminating a single point I k a I a I i k d L N k s H N p We have assumed that we know The point The surface normal The viewer location or direction The light location or direction But commonly normal vectors are only given at the vertices It is also expensive to compute lighting for every point 4 1 04 University of Wisconsin CS559 Spring 2004 Shading Interpolation Take information specified or computed at the vertices and somehow propagate it across the polygon triangle Several options Flat shading Gouraud interpolation Phong interpolation 4 1 04 University of Wisconsin CS559 Spring 2004 Flat shading Compute shading at a representative point and apply to whole polygon OpenGL uses one of the vertices Advantages Fast one shading computation per polygon fill entire polygon with same color Disadvantages Inaccurate What are the artifacts 4 1 04 University of Wisconsin CS559 Spring 2004 Gouraud Shading Shade each vertex with it s own location and normal Linearly interpolate the color across the face Advantages Fast incremental calculations when rasterizing Much smoother use one normal per shared vertex to get continuity between faces Disadvantages What are the artifacts Is it accurate 4 1 04 University of Wisconsin CS559 Spring 2004 Phong Interpolation Interpolate normals across faces Shade each pixel individually Advantages High quality narrow specularities Disadvantages Expensive Still an approximation for most surfaces Not to be confused with Phong s specularity model 4 1 04 University of Wisconsin CS559 Spring 2004 4 1 04 University of Wisconsin CS559 Spring 2004 Shading and OpenGL OpenGL defines two particular shading models Controls how colors are assigned to pixels glShadeModel GL SMOOTH interpolates between the colors at the vertices the default Gouraud shading glShadeModel GL FLAT uses a constant color across the polygon Phong shading requires a significantly greater programming effort beyond the scope of this class Also requires fragment shaders on programmable graphics hardware 4 1 04 University of Wisconsin CS559 Spring 2004 The Current Generation Current hardware allows you to break from the standard illumination model Programmable Vertex Shaders and Fragment Shaders allow you to write a small program that determines how the color of a vertex or pixel is computed Your program has access to the surface normal and position plus anything else you care to give it like the light You can add subtract take dot products and so on Fragment shaders are most useful for lighting because they operate on every pixel 4 1 04 University of Wisconsin CS559 Spring 2004 The Full Story We have only touched on the complexities of illuminating surfaces The common model is hopelessly inadequate for accurate lighting but it s fast and simple Consider two sub problems of illumination Where does the light go Light transport What happens at surfaces Reflectance models Other algorithms address the transport or the reflectance problem or both Much later in class or a separate course CS 779 4 1 04 University of Wisconsin CS559 Spring 2004 Mapping Techniques Consider the problem of rendering a soup can The geometry is very simple a cylinder But the color changes rapidly with sharp edges With the local shading model so far the only place to specify color is at the vertices To do a soup can would need thousands of polygons for a simple shape Same thing for an orange simple shape but complex normal vectors Solution Mapping techniques use simple geometry modified by a detail map of some type 4 1 04 University of Wisconsin CS559 Spring 2004 Texture Mapping The soup tin is easily described by pasting a label on the plain cylinder Texture mapping associates the color of a point with the color in an image the texture Soup tin Each point on the cylinder get the label s color Question to address Which point of the texture do we use for a given point on the surface Establish a mapping from surface points to image points Different mappings are common for different shapes We will for now just look at triangles polygons 4 1 04 University of Wisconsin CS559 Spring 2004 Example Mappings 4 1 04 University of Wisconsin CS559 Spring 2004 Basic Mapping The texture lives in a 2D space Parameterize points in the texture with 2 coordinates s t These are just what we would call x y if we were talking about an image but we wish to avoid confusion with the world x y z Define the mapping from x y z in world space to s t in texture space To find the color in the texture take an x y z point on the surface map it into texture space and use it to look


View Full Document

UW-Madison CS 559 - Shading Interpolation

Documents in this Course
Filters

Filters

14 pages

Lecture 2

Lecture 2

24 pages

Clipping

Clipping

22 pages

Modeling

Modeling

33 pages

Filters

Filters

26 pages

Dithering

Dithering

33 pages

Lecture 4

Lecture 4

20 pages

Load more
Loading Unlocking...
Login

Join to view Shading Interpolation and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Shading Interpolation and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?