Readings
Readings are specified for each topic in lecture. They come mainly from the two course textbooks:
- Shirley = Peter Shirley. Fundamentals of Computer Graphics. AK Peters, 2001. (the required textbook)
- FvDFH = Foley, van Dam, Feiner, and Hughes. Computer Graphics: Principles and Practice, 2e. Addison Wesley, 1990. (the supplementary textbook—on reserve at the Engineering Library)
Some readings also consist of published articles that are available on the Web. Many of these are in the ACM Digital Library, which you can access from any machine on the Cornell campus network.
Two other kinds of references exist besides the readings. The lecture slides are available for all topics, and for some topics additional lecture notes are available. These references are linked off the schedule page (as are the readings listed here).
1 September: introduction
Shirley Ch. 1
This brief chapter goes through the same kind of intro I will do in class,
and also covers various practical issues that will be useful to keep in mind
during the assignments. Skim over the C++-specific parts of 1.7 and 1.8,
since we'll be using Java.
3–5 September: images and compositing
Shirley 3.1–3.4
These sections will give you a preview of the question "what is an image?" and
a very brief discussion of alpha and compositing. The rest of the
chapter we will cover later.
Porter & Duff, Compositing digital images (1984)
This classic article introduced image compositing and still describes exactly
how compositing is done today.
12–17 September: basic math review
Shirley Ch. 2
This chapter reviews some mathematical tools we'll be using throughout the
semester: some very basic topology, trigonometry, and linear algebra;
representations of curves and surfaces in 2D and 3D; and some games with
triangles.
17–22 September: linear algebra review
Shirley Ch. 4
This chapter reviews a subset of linear algebra in a bit more depth.
Especially if this material is new to you, it will be worthwhile to study this
carefully, because it's important for these basic matrix operations to be
second nature to you as we move forward.
26 September–6 October: rendering
Shirley 9.1–9.7
This chapter covers ray tracing in more depth than we will need, so I'm only
asking you to read the first half or so. If you're interested in this
material, go ahead and read the rest of the chapter too—it may inspire
you to go for extra credit in the next programming assignment!
29 September: shading
Shirley Ch. 8
This chapter goes over the basic shading models, plus a bit of a digression on
artistic shading. It discusses issues of surfaces that are approximated by
triangles more than we need at this point, so you can skim over that aspect
for now.
8–15 October: transformations
Shirley Ch. 5
This chapter goes through the mechanics of transformations in 2D and 3D, with
a bit less motivation and abstraction than in lecture (this could be good or
bad depending on your viewpoint). Section 5.1.6 covers decomposition of
transformations, which we won't need, so don't stress over it too much if
it's confusing (it can also be very illuminating, depending on what
background you are coming from).
17 October: viewing
Shirley Ch. 6
This chapter goes over the basics of orthographic and perspective viewing and
derives the projection matrices for those two cases. It's pretty compact, so
you may have to puzzle over some parts carefully.
22–24 October: pipeline and rasterization
Shirley 2.10 & 2.11
These sections discuss linear interpolation and barycentric coordinates for
triangles, which are very important for interpolating values in rasterization.
Shirley 3.5 & 3.6
These sections discuss rasterization of lines and triangles. He presents
triangle rasterization algorithm in terms of barycentric coordinates rather
than edge equations, but there is no real difference between the two.
Shirley Ch. 11
This chapter gives a rather sketchy outline of graphics pipelines with too
much emphasis on clipping but some very good discussion of the homogeneous
coordinates of primitives as they are transformed to the screen.
5–7 November: texture mapping
Shirley Ch. 10
You can skim 10.1, since it covers 3D textures and procedural textures, which
we didn't discuss.
14–24 November: spline curves and surfaces
Shirley Ch. 13
This chapter discusses spline curves and surfaces together (rather than
separately as we did in lecture) and discusses arbitrary-order Bézier
curves and surfaces, where we stuck to cubic. You can skim the last section,
on subdivision surfaces, because we aren't covering those.
1–5 December: color
Shirley Ch. 17 & 18
Chapter 17 covers human vision in more detail than I did in lecture, but it's
fascinating reading (and pretty easy going). The optical illusions are fun.
Chapter 18 covers about the same material as the lecture, but goes into
somewhat more detail than we need in 18.5–18.7.