main-readings

You are responsible for the material in the readings. It may appear on the exams.

Unless otherwise specified, we expect you to have done the reading for a particular week before the Friday lecture. You may find that its best to do readings before lectures earlier in the week.

Key: (see the Books page)

  • “SM” or “Shirley” refers to Fundamentals of Computer Graphics, 3e by Pete Shirley, Steve Marschner, and et al. When there is an equivalence in the 2nd edition, that might be noted as “S”, or described. I may also refer to this book as FCG (Fundamentals of Computer Graphics).
  • “OGL” refers to the OpenGL Programmers Guide, by Schreiner, et al. I’m pretty sure the chapter numbers / section headings are the same across versions except where noted. In places where its important to have the 6th or 7th edition, we will note that and make it available online.

Other readings will be distributed electronically

For each week, the start day of the week is listed - that’s not necessarily when the reading is due. In general, I recommend looking over all of the reading at the beginning of the week, and then reading more closely along with the lectures. Lecture topics will (generally) run parallel with the readings - but they won’t be exactly the same.

1.@ Week 1 (monday 8/31) : Introduction

Reading: SM1, SM3
Read through Chapter 1 to get an idea of what Shirley and Marschner think graphics is, and get some ideas about floating point numbers (SM1.5). Look over SM3 to get a sense of what an image is - we’ll talk more about these topics over the next week or so.

2nd edition note: The reading is S1,S3, but Chapter 3 has a lot more topics in it that we won't get to until later in the semester.

2.@ Week 2 (monday 9/7) Images and Practical Issues

Reading: SM3, OGL1, OGL2
This week we’ll cover the material in Chapter 3 of FCG, so you might look at it again. You may also want to look ahead at Chapter 9.

We’ll also talk about some of the programming issues, but those aren’t covered in a book.

(optional) If you really want to understand gamma, I recommend Charles Poynton’s Chapter on Gamma that is part of his excellent book A Technical Introduction to Digital Video. His Frequently Asked Questions about Gamma is also excellent. Be warned: these discussions are geared towards video.

3.@ Week 3 (monday 9/14) Image Processing

Reading: SM9 (section 9.5 is optional), notes

Chapter 9 is an overall introduction to the ideas of Image Processing. Its presented in a way that doesn’t require too much math backgound. Section 9.5 does it in a much more “math heavy” way - and probably requires you to have a bunch of background first.

2nd edition: Image Processing was Chapter 4 in the 2nd edition of Shirley.

Sampling theory is one of those things you might need to read about several times before you “get it.” A great tutorial is Pat Hanrahan’s Notes, although they are a bit mathematical. My tutorial on The Intuitions of Signal Processing are written for an application other than image processing, but cover the 1D material.

I strongly recommend that you look at some of the interactive tutorials.

There are some in the Brown University Exploratories. In the [Signal Processing Section](http://www.cs.brown.edu/exploratories/freeSoftware/catalogs/signal_processing.html), they have things to allow you to play with convolution and filtering (as well as some color things that we'll get to later). The [convolution](http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/convolution/convolution_guide.html) has some issues (read the directions carefully), but the [discrete convolution](http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/discreteConvolution/discrete_convolution_java_browser.html) (again, pay attention to the instruction) will be helpful. The [special function convolution](http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/specialFunctionConvolution/special_function_convolution_java_browser.html) applet is probably better than the regular one (and it doesn't seem to have the same bug). The [two box convolution](http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/twoBoxConvolution/two_box_convolution_java_browser.html) is pretty simple, but can help if you're just not getting convolutions. The [nyquist limit](http://www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/nyquist/nyquist_limit_java_browser.html) applet is really good for seeing how aliasing happens.
The "Optical Microscopy Primer" also has some really nice [interactive tutorials](http://micro.magnet.fsu.edu/primer/digitalimaging/javaindex.html), although their examples are more geared towards microscope images. Many are relevant ([Spatial Resolution](http://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/spatialresolution/index.html), [Sharpness Adjustment](http://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/sharpness/index.html) (notice how sharpening introduces ringing). The [Convolution Kernels](http://micro.magnet.fsu.edu/primer/java/digitalimaging/processing/convolutionkernels/index.html) demo will let you play with various kernels, ... This is a great resource - you might want to come back later in the semester to try out some of the other filtering types!
There are many basic signal processing tutorials out there. [This one](http://www.jhu.edu/~signals/lecture1/frames.html) will help you with convolutions.
A student suggests as a good intro to convolutions

4.@ Week 4 (monday 9/21) Image Manipulation

Image manipulation isn’t discussed much in the text, other than a brief discussion of compositing in SM3.4. I’m still trying to find better readings.

(optional) Image Compositing Fundamentals is good, but it spends too much of its time on some low-level issues that we don’t care about nowadays. His Alpha and the History of Digital Compositing gives a nice historical background, and some intuitions as to why compositing works this way.

5.@ Week 5 (monday 9/28) Geometric Graphics

Readings: SM2 (2.4 is required, rest optional), SM5, SM6, SM12.2, OGL1
There are a bunch of different readings here, not all needs to be looked at in detail

  • SM2 (Miscellaneous Math) is a smattering of math topics of varying degrees of relevance. What is really important is Section 2.4 (Vectors). Don’t worry too much about the other parts (yet).
  • SM5 is a review of linear algebra. 5.2 is the important stuff. This all should be a review. We won’t do too much with 5.4 in this course.
  • SM12.1 (Scene Graphs) is a topic that is put in an odd place in the book
  • SM6 is the real discussion of transformations - the main conceptual topic for the week. Its the main place we use all that linear algebra. This stuff will come back again and again. In class, we’ll cover things in a bit of a different order.
  • OGL1 is a broad overview of what OpenGL is. Read it to get a sense of what else there is, but don’t be too concerned with details. And we won’t actually use GLUT in class.

6.@ Week 6 (monday 10/5) Drawing in 3D

Readings: SM7, SM8, OGL2, OGL3
There’s a long list of readings, because there are a bunch of topics that get scattered about. Plus, you might want to go back and look at the 3D stuff in the transformations chapter (SM6.2).

  • SM7 talks about viewing transformations. You’ll also see this in the OpenGL book.
  • SM8 gives a whole discussion of how things get drawn and put up on the sceen. We’ll probably defer discussion of Rasterization (SM8.1) for now. The most important part of this reading is visibility, which is kindof hidden away (pay attention to 8.2.3)
  • OGL2 gives you an idea of how we actually draw stuff in OpenGL. The goal is to read through it to get the basic ideas, and just a sense of what kinds of advanced stuff are there. I certainly wouldn’t expect you to remember any of the details - and certainly don’t worry about the stuff about buffers and whatnot.
  • OGL3 discusses how OpenGL deals with transformations, especially viewing. This chapter is actually a reasonably good tutorial about viewing and transformation topics. The details of the library, of course, are less important (but its good to know where to look so when you start programming)

Note on the 2nd Edition: S8 is actually a more appropriate chapter for the way that we present things in class, giving an entire discussion on visibility in one place.

7.@ Week 7 (monday 10/12) Shape and Appearance

Reading:OGL5, OGL2, SM10, SM12.1

Again, a long list of topics, but what really matters is a smaller subset of each.

  • SM12.1 - discusses meshes. You’ll really care about the simpler ideas, the more complex stuff (winged edges and half-edges) its good to have heard about, but we won’t say much about the.
  • OGL2 - scattered throughout are things on how OpenGL lets you deal with Meshes. Again, don’t worry about the details. This is mainly given since the older version of FCG didn’t talk about meshes enough.
  • SM10 is the primary reading for lighting and shading. SM10.3 (artistic shading) is a topic we won’t talk much about (but is one I am very interested in).
  • OGL5 describes how OpenGL does lighting. The annoying way that you need to specify lighting isn’t as important (until you try to program it), but they do give you some ideas as to how the lighting model works (its the same model as in SM10).

8.@ Week 8 (monday 10/19) Curves Viewing, Visibility, Shading, Curves

Because of the schedule shift, we’ll spend most of this week on the topics for which the readings were given above for the previous week.

Chapter 15 of SM (which is identical to Chapter 13 of Shirley 2e) is a decent introduction to parametric curves. I am biased. It dives into the math a bit too fast, so in class, we’ll come at the same material from a different approach. It is useful to see things both ways. We will not discuss B-Splines in class, so you don’t need to worry about them. (they are very interesting and useful, but we just don’t have enough time)

9.@ Week 9 (monday 10/26) Curves and Texture

Probably, a lot of your reading for this week will be for the exam. Some curves stuff will be on the exam (the rest will be on the final). Look for an announcement.

See the curves reading for the previous week.

10.@ Week 10 (monday 11/2) Curves, Texture and Hardware

Texturing is discussed in SM Chapter 11. Chapter 9 of the OpenGL book tells you the gory details of how OpenGL lets you control it. Don’t worry about those gory details, except to see the kinds of things you can control.

The Real-Time Rendering book (RTR) is a much better resource on texture. The chapter from the old edition is available on AFS in the directory p:/course/cs559-gleicher/public/Readings file texturing.pdf (I cannot put it on the web for copyright reasons). This reading is strongly recommended, but not required.

Graphics hardware gets delayed until next week.

11.@ Week 11 (monday 11/9) Hardware and Shaders

To learn about graphics hardware, make sure you understand what the graphics pipeline is (review SM8), and read the chapter on hardware in SM (Chapter 18). A big piece of learning about hardware is learn about programming it. To get started with this, read Chapter 15 of the OpenGL book (6th or 7th edition). In case you have an older edition of the OpenGL book, the readings AFS directory (p:/course/cs559-gleicher/public/Readings) has both the Chapter (chapter15) and the appendix on GLSL.

If you want a good tutorial on GLSL (and you probably will), there is one I liked at http://www.opengl.org/sdk/docs/tutorials/TyphoonLabs/

12.@ Week 12 (monday 11/16) Hardware and Shaders

We aren’t actually going to get to software rendering - so this week will stay focused on hardware renfering and writing shaders. If you haven’t read Shirley Chapter 18 and Chapter 15 of the OpenGL book, now is a good time.

13.@ Week 13 (monday 11/23) Surfaces

Unfortunately, surfaces are conspicuously absent from the Shirley book. This means there’s absolutely nothing for you to learn the basic ideas from, nor for you to learn about parametric surfaces (which are the hard way to make surfaces).

To learn about subdivision surfaces, please read these two Game Developer Magazine articles: Subdivision Surface Theory and Implementing Subdivision Surface Theory.

If you want more, there is a thorough tutorial at http://mrl.nyu.edu/publications/gdc-tutorial2001/ (look for the link to the notes). It has a lot of details, and more math than you probably want. But if you just read the good parts, you can learn a lot. And it has all the equations for when you really implement it.

The Real-Time Rendering book also has a nice chapter on curves and surfaces. Subdivision is covered in section 13.4 and 13.5, but there is a nice presentation of Bezier Curves (and other cubics), as well as some other surface types. This chapter is in p:/course/cs559-gleicher/public/NewRTR.

14.@ Week 14 (monday 11/30) Surfaces, Rendering and Animation and Visualization

We ended up spending more time on subdivision, so we’ll barely get to animation. Make sure you’ve read the subdivision readings above.

Animation is surveyed in SM 17. We’ll cover this first. We might not get to rendering until next week.

We won’t get to talk about visualization in class. If you’re interested, they’ll be a whole class on it next semester.

15.@ Week 15 (monday 12/7) Perceptual Issues

The main topic we’ll talk about is Color. Shirley and Marschner Chapter 21 is a pretty thorough introduction.

Maureen Stone’s tutorial on Representing Color as 3 Numbers http://www.stonesc.com/pubs/Stone%20CGA%2007-2005.pdf gets the same points across really well. I can’t decide which one I like better. The book chapter has a lot of extra stuff.

I also recommend Charles Poynton’s Color FAQ as a good discussion of the various terms you need to understand how color works. There is a lot of detail on the parts related to video (you don’t need to know the difference between Y’IQ and YCC), but seeing these details will help you appreciate the issues.

We’ll also cover tone mapping. Chapter 23 of Shirley and Marschner covers it well

In order to really understand graphics (especially color and tone mapping) you need to understand human perception. Shirley and Marschner Chapter 22 is a good introduction, but I am not sure we’ll discuss this in class much, so its an optional reading.

I can’t imagine having a graphics class without at least mentioning ray tracing and high-end rendering.Rendering is discussed in SM Chapter 4 (which introduces Ray Tracing), Chapter 13 (which says more about Ray Tracing), and 24 (which discusses global Illumination).

16.@ Week 16 (monday 12/14)

No readings for the last week (which is a little odd to have a half week of classes).

Page last modified on December 02, 2009, at 11:21 AM