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.