1 / 25

CS 551 / 645: Introductory Computer Graphics

CS 551 / 645: Introductory Computer Graphics. David Luebke cs551@cs.virginia.edu http://www.cs.virginia.edu/~cs551. Administrivia. Assignment 6: line.c, gfx.c, lookat() description. Recap: Lambert’s Cosine Law. Ideal diffuse surfaces reflect according to Lambert’s cosine law :

Download Presentation

CS 551 / 645: Introductory Computer Graphics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS 551 / 645: Introductory Computer Graphics David Luebke cs551@cs.virginia.edu http://www.cs.virginia.edu/~cs551 David Luebke 11/4/2014

  2. Administrivia • Assignment 6: line.c, gfx.c, lookat()description David Luebke 11/4/2014

  3. Recap: Lambert’s Cosine Law • Ideal diffuse surfaces reflect according to Lambert’s cosine law: The energy reflected by a small portion of a surface from a light source in a given direction is proportional to the cosine of the angle between that direction and the surface normal • These are often called Lambertian surfaces • Note that the reflected intensity is: • Independent of the viewing direction • Dependent on the surface orientation with regard to the light source David Luebke 11/4/2014

  4. Recap: Lambert’s Law David Luebke 11/4/2014

  5. Recap: Computing Diffuse Reflection • The angle between the surface normal and the incoming light is the angle of incidence: Idiffuse = kd Ilightcos  • In practice we use vector arithmetic: Idiffuse = kd Ilight(n • l) l n  David Luebke 11/4/2014

  6. Recap: Specular Reflection • Shiny surfaces exhibit specular reflection • Polished metal • Glossy car finish • A light shining on a specular surface causes a bright spot known as a specular highlight • Where these highlights appear is a function of the viewer’s position, so specular reflectance is view-dependent David Luebke 11/4/2014

  7. Recap: The Optics of Reflection • Reflection follows Snell’s Laws: • The incoming ray and reflected ray lie in a plane with the surface normal • The angle that the reflected ray forms with the surface normal equals the angle formed by the incoming ray and the surface normal: l = r David Luebke 11/4/2014

  8. Recap: Non-Ideal Specular Reflectance • An illustration of this angular falloff: • How might we model this falloff? David Luebke 11/4/2014

  9. Recap: Phong Lighting • The most common lighting model in computer graphics was suggested by Phong: • The nshinyterm is a purelyempirical constant that varies the rate of falloff • Though this model has no physical basis, it works (sort of) in practice David Luebke 11/4/2014

  10. Calculating Phong Lighting • The cos term of Phong lighting can be computed using vector arithmetic: • V is the unit vector towards the viewer • Common simplification: V is constant (implying what?) • Ris the ideal reflectance direction • An aside: we can efficiently calculate R David Luebke 11/4/2014

  11. Calculating The R Vector • This is illustrated below: David Luebke 11/4/2014

  12. Blinn & Torrance Variation • Blinn introduced a variation of the Phong model: • Here H is a vector bisecting the incoming light direction and viewing direction: David Luebke 11/4/2014

  13. Blinn & Torrance Variation • What does H represent? (Hint: think of H as the normal of a plane) • A: the orientation of a plane which will maximally reflect light from L towards V • Why bother with this variation? David Luebke 11/4/2014

  14. Phong Examples • These spheres illustrate the Phong model as L and nshiny are varied: David Luebke 11/4/2014

  15. The Phong Lighting Model • Our final empirically-motivated model for the illumination at a surface includes ambient, difuse, and specular components: • Commonly called Phong lighting • Note: once per light • Note: once per color component • Do ka, kd, and ks vary with color component? David Luebke 11/4/2014

  16. Phong Lighting: Intensity Plots David Luebke 11/4/2014

  17. Applying Illumination • We now have an illumination model for a point on a surface • Assuming that our surface is defined as a mesh of polygonal facets, which points should we use? • Keep in mind: • It’s a fairly expensive calculation • Several possible answers, each with different implications for the visual quality of the result David Luebke 11/4/2014

  18. Applying Illumination • With polygonal/triangular models: • Each facet has a constant surface normal • If the light is directional, the diffuse reflectance is constant across the facet • If the eyepoint is infinitely far away (constant V), the specular reflectance of a directional light is constant across the facet David Luebke 11/4/2014

  19. Flat Shading • The simplest approach, flat shading, calculates illumination at a single point for each polygon: • If an object really is faceted, is this accurate? • No: • For point sources, the direction to light varies across the facet • For specular reflectance, direction to eye varies across the facet David Luebke 11/4/2014

  20. Flat Shading • We can refine it a bit by evaluating the Phong lighting model at each pixel of each polygon, but the result is still clearly faceted: • To get smoother-looking surfaceswe introduce vertex normals at eachvertex • Usually different from facet normal • Used onlyfor shading (as opposed to what?) • Think of as a better approximation of the real surface that the polygons approximate (draw it) David Luebke 11/4/2014

  21. Vertex Normals • Vertex normals may be • Provided with the model • Computed from first principles • Approximated by averaging the normals of the facets that share the vertex David Luebke 11/4/2014

  22. Gouraud Shading • This is the most common approach • Perform Phong lighting at the vertices • Linearly interpolate the resulting colors over faces • This is what OpenGL does • Demo at http://www.cs.virginia.edu/~cs551/vrml/tpot.wrl • Does this eliminate the facets? David Luebke 11/4/2014

  23. Phong Shading • Phong shading is not the same as Phong lighting, though they are sometimes mixed up • Phong lighting: the empirical model we’ve been discussing to calculate illumination at a point on a surface • Phong shading: linearly interpolating the surface normal across the facet, applying the Phong lighting model at every pixel • Same input as Gouraud shading • Usually very smooth-looking results: • But, considerably more expensive David Luebke 11/4/2014

  24. An Aside: Transforming Normals • Irritatingly, the matrix for transforming a normal vector is not the same as the matrix for the corresponding transformation on points • In other words, don’t just treat normals as points: David Luebke 11/4/2014

  25. Transforming Normals • Some not-too-complicated affine analysis shows : • If A is a matrix for transforming points,then (AT)-1 is the matrix for transforming normals • When is this the same matrix? • What is homogeneous representation of a vector (as opposed to a point?) • Can use this to simplify the problem: only upper 3x3 matrix matters, so use only it • More detail in F&vD Appendix A.5 David Luebke 11/4/2014

More Related