Lectures and Reading

**4/4:**Color, linear interpolation. Sections 3.3 and the end of Section 3.5 (second algorithm) in Fundamentals of Computer Graphics (hereafter called "the text"). You should also read Chapter 1 in the text, it is a good introduction and full of helpful programming advice!**4/6:**Triangle rasterization and some background on 2D geometry. Section 3.6 and Section 2.5.2.**4/11:**Barycentric coordinates, Section 2.11, and z-buffering, Section 8.2.**4/13:**Introduction to fractal plants and L-systems. See my old lecture notes.**4/18:**2D transoformation matrices. Section 6.1 in the text, first part of 6.3.**4/20:**Project 2 intro (see the assignment). Coordinate systems (outside observer or turtle) and order of matrix products, Section 6.5.**4/25:**Bezier curves. deCastejau's algorithm, Section 15.6.1. The notes on pages 102-104 of Prof. Mount's lecture notes are closer to the way we talked about it in lecture than the material in the book, which builds on some theory in the begining of the chapter that we didn't cover. Definition of "convex". Here is the deCasteljau applet which I could not show in class.**4/27:**Some other examples of L-systems, handout. 3D transformations, Sections 6.2.1 and 6.3. Also see 117-126 in the OpenGL Programming Guide, for the OpenGL transformation commands.**5/2:**Midterm review. See the midterm preparation materials.**5/4:**Midterm, in class.**5/9:**3D models. Vertex and face tables. Icosohedron example, page 95 in the OpenGL book. Computing normal vectors, 63-65 and 749-759 in the OpenGL book, and pages 26-27 on the cross-product, in the text, and pages 38-39 on the equation for a plane in 3D.**5/11:**Glassball user interface. Two suggestions for how to implement it, 1. Keep your own copy of the MODELVIEW matrix, multiply it on the left with the new rotation matrix at every step, and then load it into the real MODELVIEW matrix using glLoadMatrix. 2. At each step, extract the MODELVIEW matrix with glGET(GL_MODELVIEW_MATRIX), load the identity, rotate, and then multiply by the previous MODELVIEW using glMultMatrix. Vectors and transformations, inverse transpose MODELVIEW applied to normal vectors; only knowing this does the discussion of when to re-normalize normal vectors on page 65 of the OpenGL book make any sense. Intro to modeling with parametric surfaces.**5/17:**Modeling with parametric surfaces. Finding normal vectors to parametric surfaces. Page 747 in the OpenGL book (begining of appendix on calculating normal vectors), Sections 2.8 and 2.9 in the text book. Here are some lecture notes, showing the torus example we did in class.**5/19:**OpenGL's local illumination model, part 1. Sections 9.1 and 9.2 in the book. "Phong shading" is what the we (and OpenGL) call the "specular component" of the lighting equation.**5/23:**Full OpenGL lighting equation. Pages 220-224, "The mathematics of lighting", in the OpenGL book. Repeating textures. Intro to last project. Perspective projection and the perspective divide in homogeneous coordinates, Section 7.3 in the book. Note that in class we simplified by allowing the z-value always to project to -d, we will discuss the pros and cons of this later.**5/25:**Navigation in the virtual world. Pages 117-120, "Thinking about transformations" in the OpenGL book, and pages 126-129, "Viewing transformations". A recursive scallop shell, see sample code in project 4.**5/30:**Making infinite virtual worlds. Fog, the infinite floor, sky spheres. Using Bezier surfaces, pages 527-540, "Evaluators", in the OpenGL book has all the details.**6/1:**Perspective projection and z-buffering. Section 7.3 in the text, revisited. Perspective-correct texture mapping, Section 11.4 in the textbook.