Main / Readings - CS559 2007
On this page... (hide)
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.
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:
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.
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, 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 has some issues (read the directions carefully), but the discrete convolution (again, pay attention to the instruction) will be helpful. The special function convolution applet is probably better than the regular one (and it doesn't seem to have the same bug). The two box convolution is pretty simple, but can help if you're just not getting convolutions. The nyquist limit applet is really good for seeing how aliasing happens.
The "Optical Microscopy Primer" also has some really nice interactive tutorials, although their examples are more geared towards microscope images. Many are relevant (Spatial Resolution, Sharpness Adjustment (notice how sharpening introduces ringing). The Convolution Kernels 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 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.
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.
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.
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.
You might find Chapter 5 of Shirley, or your linear algebra textbook, a good refresher.
The required readings for this week are Chapter 3 of the OpenGL book, and Chapter 7 and 8 of Shirley.
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.
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:
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:
I really recommend reading Chapter 6 of the upcoming 3rd edition of RTR, which is available here:
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.
We have the sections from the new RTR book. They are now 13.4 and 13.5 and available here:
We'll only touch on rasterization, Shirley describes it briefly in Sections 3.5 and 3.6.
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.
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.
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.
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.