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:

  • “Shirley” refers to Fundamentals of Computer Graphics, 2e by Pete Shirley, et al.
  • “OGL” refers to the OpenGL Programmers Guide, by the OpenGL ARB, et al.
  • “RTR” refers to the Real-Time Rendering, 2e, by Moller and Haines. For the required chapters in this book, we will provide an online copy.
UPDATE 10/30/2007: The authors of this book have provided us with advanced copies of some chapters to "beta-test."! In the readings below, these will be explained where they are appropriate. For copyright reasons, we cannot place it on the web. It is available on AFS as:
/p/course/cs559-gleicher/public/NewRTR/

1.@ Readings, Week 1, Preliminaries

Primary Readings: Shirley, Chapters 1 and 3

Read Shirley, Chapters 1 and 3. A lot of the topics we won’t cover until later in the course. In particular, you can probably postpone reading 3.4-3.7.

(alternate) If you want to see the basic concepts discussed from the perspective of video, I hightly recommend Chapter 1 of Charles Poynton’s excellent book on Digital Video. (added bonus - the chapter is online!)

(optional) If you want to learn about human vision, Chapter 21 of the book is good. There is also a good tutorial Elements of Early Vision for Computer Graphics by Jim Ferwerda. Its available on his web page.

(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.

2.@ Readings: Week 2 (Sep 10), Image and Signal Processing

Primary Readings: Shirley Ch. 4 and Interactive Tutorials

Read Shirley, Chapter 4. Sections 4.1-4.4 will give a good overview of the subject. We won’t go into all of the detail of Section 4.5 in class, but some of the concepts will be important. You will need to understand convolution, filtering, aliasing, and how sampling can lead to aliasing.

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.

(alternate) Sampling theory is one of those things you might want 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.

(optional) RTR 4.4 also gives a good idea of what Sampling is all about.

(optional) My favorite tutorial on the basic image processing stuff is the book Digital Image Warping by George Wolberg. Its a bit dated, but has excellent coverages of the basics.

3.@ Readings: Week 3 (Sep 17th), Color and Image Adjustments

Primary Readings: Shirley Chapter 20, Poynton’s Color FAQ, Smith’s Image Compositing Fundamentals

Chapter 20 of Shirley’s book is a good introduction to the theory behind color. You should read it to understand the underlying concepts. However, you will need to read more. We will provide another reading to discuss the more practical issues in color.

Charles Poynton’s Color FAQ is 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.

Pixel adjustments and compositing really aren’t covered in the book at all. There is a brief mention of Alpha in Shirley Section 3.4. We will provide notes as to what you really need to know, or use the recommended/optional references.

(recommended) The real reference for compositing is the original paper Compositing digital images by Porter in Duff, published at SIGGRAPH ‘84. The paper is available online at the ACM digital library, (you can download the PDF if you are on campus). This is a good place to learn about the different imaging operators.

(recommended) Image Compositing Fundamentals by Alvy Ray Smith describes compositing really well, with a lot of the details given. In particular, the difference between pre-multiplied and not-pre-multiplied alpha will be important to you when you implement compositing. Note that this is old (from 1995 or before), so some terminology might seem funny. Also, the complexities they go through to keep everything in 8 bit are probably not warranted on a modern processor.

(optional) Alvy Ray Smith’s Alpha and the History of Digital Compositing gives a nice historical background, and some intuitions as to why compositing works this way.

4.@ Readings: Week 4, Sep 24th - Geometric Image Manipulations

Primary Reading: to be determined

Unfortunately, there really isn’t a great tutorial on this stuff. There is a good book by Wolberg, but it is dated and is more than you probably want to know.

(optional) Chapter 3 of Paul Heckbert’s Master’s Thesis is a good discussion of the topic. It is written specifically to the projective transformations that you encounter in texture mapping, but the ideas generalize.

5.@ Readings: Week 5, October 1st - Transformations

The primary readings for transformations is Shirley, Chapter 6. Since you’re likely to be busy working on the project, there won’t be too much reading beyond that.

Chapter 3 of the OpenGL book has a great discussion of transformations as well, but its mixed in with other things like viewing (so its the required reading for next week). But you might want to look at it now to get a head start.

The Brown Exploratories have a transformation game that will give you some practice with working with transformations. There tutorials on scenegraphs are less useful.

You might find Chapter 5 of Shirley, or your linear algebra textbook, a good refresher.

6.@ Readings: Week 6, October 8th - Drawing in 3D

The required readings for this week are Chapter 3 of the OpenGL book, and Chapter 7 and 8 of Shirley.

7.@ Readings: Week 7, October 15th - Open GL and Basic Interactive 3D

In this week, we’ll talk about how to actually go about programming in OpenGL. The reading is as much of the OpenGL book as you can (Chapters 1,2 and 5). You don’t need to know the details of all the commands, but you should understand all of the concepts.

8.@ Readings: Week 8, October 22nd - Curves

The primary reading here is Shirley, Chapter 15 up to (and including) 15.6.1 (but not 15.6.2). You might want to look at other sources for other information on Bezier curves and other splines.

In Chapter 12 of the RTR book, there is a very different description of parametric curves in Section 12.1. Its backwards from the Chapter in Shirley (it starts with the geometric construction of Beziers and then moves on to Cardinals). Seeing the same material a different way can be helpful. The chapter is available at:/p/course/cs559-gleicher/public/Readings/rtr-12-curves-surfaces.pdfon a CSL Windows machine as:P:\course\cs559-gleicher\public\Readings\rtr-12-curves-surfaces.pdf

9.@ Readings: Week 9, October 29th - B-Splines, Local Lighting and Shape Modeling

For B-Splines, the primary reference is Shirley 15.6.2. We won’t cover them in much detail though.

For lighting, both Shirley Chapter 9 and Chapter 5 of the OpenGL book are both very good. Read Shirley first. The OpenGL book is filled with the OpenGL specific details that you need for your projects, but don’t need to memorize.

The new edition of the Real-Time Rendering book will have an interesting take on the whole lighting/appearance thing. If you’re really interested in graphics, especially in advanced visual effects for games, I really recommend reading Chapter 5 of the upcoming 3rd edition of RTR, which is available here:/p/course/cs559-gleicher/public/NewRTR/5_visapp.pdfBeware: the file has a 100 page bibliography (for the whole book) at the end, so you probably don’t want to print the whole thing.

10.@ Readings: Week 10, November 5th - Texturing and Real-Time Rendering

The required reading is Chapter 5 from Real-Time Rendering. For copyright reasons, we cannot place it on the web. It is available on AFS as:/p/course/cs559-gleicher/public/Readings/texturing.pdfon a CSL Windows machine as:P:\course\cs559-gleicher\public\Readings\texturing.pdf

I really recommend reading Chapter 6 of the upcoming 3rd edition of RTR, which is available here:/p/course/cs559-gleicher/public/NewRTR/6_texture.pdfBeware: the file has a 100 page bibliography (for the whole book) at the end, so you probably don’t want to print the whole thing.

Shirley, Chapter 11 is also pretty good, and should be read as a supplement.

You will want to look at Chapter 9 of the Open GL book on texturing, but it is full of the details of how textures are programmed in OpenGL, which isn’t as important for you to know.

We’ll also talk about Parametric Surfaces (again, not in too much detail). RTR 12.2 talks about these, but not in a way that’s too useful for class.

11.@ Readings: Week 11, November 12th - Subdivision and Rasterization

For subdivision surfaces, you should read sections 12.5-12.6 of RTR (provided in the readings page), as well as the Subdivision Surface Theory article from Gamasutra. The implementation article is useful if you ever want to implement it. All of these are in the course readings directory:/p/course/cs559-gleicher/public/Readingson a CSL Windows machine as:P:\course\cs559-gleicher\public\Readings

We have the sections from the new RTR book. They are now 13.4 and 13.5 and available here:/p/course/cs559-gleicher/public/NewRTR/13_surfs_gleicher.pdfBeware: the file has a 100 page bibliography (for the whole book) at the end, so you probably don’t want to print the whole thing.

We’ll only touch on rasterization, Shirley describes it briefly in Sections 3.5 and 3.6.

12.@ Readings: Week 12, November 19th - Graphics Hardware

The required reading is Chapter 17 of Shirley. The chapter on graphics hardware in the OpenGL book is good, however, you need to have a new (6th edition) OpenGL book.

13.@ Readings: Week 13, November 26hth - Rendering

Shirley describes basic Ray Tracing very well in Chapter 10. Unfortunately, for the other rendering topics, everything else is way too detailed. You can look at Chapters 23 and 24, but there’s a lot more details than you probably will care about.

14.@ Readings: Week 14, Image-Based Graphics

For Non-PhotoRealistic Rendering, Shirley Chapter 9.3 isn’t much - but its more than nohting. If you’re interested, I can give you more pointers, but this is sufficient for the exam.

For Image-Based Rendering, Shirley, Chapter 25 is a good introduction and survey.

For the other topics in digital photography, I’ll try to find other readings.

15.@ Readings: Week 15, Other Topics

Shirley Chapter 16 gives a brief overview of computer animation, and Chapter 26 talks about some visualization topics. These will give you a taste of these two areas of graphics.

Page last modified on December 03, 2007, at 10:34 AM