Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Luebke3/16/2016 CS 551 / 645: Introductory Computer Graphics David Luebke

Similar presentations


Presentation on theme: "David Luebke3/16/2016 CS 551 / 645: Introductory Computer Graphics David Luebke"— Presentation transcript:

1 David Luebke3/16/2016 CS 551 / 645: Introductory Computer Graphics David Luebke cs551@cs.virginia.edu http://www.cs.virginia.edu/~cs551

2 David Luebke3/16/2016 Administrivia Assignment 6: line.c, gfx.c, lookat() description

3 David Luebke3/16/2016 Recap: Lambert’s Cosine Law l 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 l These are often called Lambertian surfaces l Note that the reflected intensity is: –Independent of the viewing direction –Dependent on the surface orientation with regard to the light source

4 David Luebke3/16/2016 Recap: Lambert’s Law

5 David Luebke3/16/2016 Recap: Computing Diffuse Reflection l The angle between the surface normal and the incoming light is the angle of incidence: I diffuse = k d I light cos  l In practice we use vector arithmetic: I diffuse = k d I light (n l) nl 

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

7 David Luebke3/16/2016 Recap: The Optics of Reflection l 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

8 David Luebke3/16/2016 Recap: Non-Ideal Specular Reflectance l An illustration of this angular falloff: l How might we model this falloff?

9 David Luebke3/16/2016 Recap: Phong Lighting l The most common lighting model in computer graphics was suggested by Phong: The n shiny term is a purely empirical constant that varies the rate of falloff l Though this model has no physical basis, it works (sort of) in practice

10 David Luebke3/16/2016 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?) –R is the ideal reflectance direction An aside: we can efficiently calculate R

11 David Luebke3/16/2016 Calculating The R Vector l This is illustrated below:

12 David Luebke3/16/2016 Blinn & Torrance Variation l Blinn introduced a variation of the Phong model: Here H is a vector bisecting the incoming light direction and viewing direction:

13 David Luebke3/16/2016 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 l Why bother with this variation?

14 David Luebke3/16/2016 Phong Examples These spheres illustrate the Phong model as L and n shiny are varied:

15 David Luebke3/16/2016 The Phong Lighting Model l Our final empirically-motivated model for the illumination at a surface includes ambient, difuse, and specular components: l Commonly called Phong lighting –Note: once per light –Note: once per color component –Do k a, k d, and k s vary with color component?

16 David Luebke3/16/2016 Phong Lighting: Intensity Plots

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

18 David Luebke3/16/2016 Applying Illumination l 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

19 David Luebke3/16/2016 Flat Shading l The simplest approach, flat shading, calculates illumination at a single point for each polygon: l If an object really is faceted, is this accurate? l No: –For point sources, the direction to light varies across the facet –For specular reflectance, direction to eye varies across the facet

20 David Luebke3/16/2016 Flat Shading l 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: l To get smoother-looking surfaces we introduce vertex normals at each vertex –Usually different from facet normal –Used only for shading (as opposed to what?) –Think of as a better approximation of the real surface that the polygons approximate (draw it)

21 David Luebke3/16/2016 Vertex Normals l Vertex normals may be –Provided with the model –Computed from first principles –Approximated by averaging the normals of the facets that share the vertex

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

23 David Luebke3/16/2016 Phong Shading l 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 n Same input as Gouraud shading n Usually very smooth-looking results: n But, considerably more expensive

24 David Luebke3/16/2016 An Aside: Transforming Normals l 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:

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


Download ppt "David Luebke3/16/2016 CS 551 / 645: Introductory Computer Graphics David Luebke"

Similar presentations


Ads by Google