CS 559: Computer
Why there isn't just one textbook for this class
Warning: this is a rant about the need for a new textbook in computer graphics, ending with an "apology" for why I haven't written one.
Last modified: 19:10 Nov 15, 2001
In a field as fast moving as computer science, it almost goes without saying that a book will be out of date before it is produced. However, I think that graphics has been particularly bad in this way. Not just because the technology has changed, but also, because the emphasis has changed. The topics that are important, the uses, the users, the applications, the pieces that the average practitioner can get off-the-shelf vs. having to build, the hardware, etc. have all changed.
Of course, these changes will continue to happen. In fact, the technology trends seem to indicate that changes are happening faster. I'll bet that 5 years from now, I'll look back at what we have today and think about how quaint the 1999 computing environment was, just like now I look back at how bad things were 10 years ago.
The easiest changes to point to are the quantitative things. My new home PC has more memory than was available in the machines of my entire research group 10 years ago, and its processor is at least 10 times faster than any fancy research computer I had access to - despite the fact that I bought it at a fraction of the cost. Indeed, a new home computer that you buy at the appliance store has more memory devoted specifically to graphics than all but the fanciest workstations did 10 years ago. However, these changes (which actually had been predicted based on Moore's law) are not what has made the current graphics textbooks obsolete.
Let me point out a specific example of the failings of the current state of the art of graphics texts. (While I prefer to not to name names, I am looking at Hearn & Bakers Computer Graphics 2nd edition and Foley, van Dam, et Al's Computer Graphics Principles and Practice - I have picked these not just from personal preference, but also because they are the most common choices for introductory courses at top universities.)
Both books describe graphics hardware - they have pictures of monitors and mice (which nowadays everyone knows about since they aren't particular to graphics). They also describe some less common things more specific to graphics: vector displays, pen and electrostatic plotters, for instance. My point is not that these devices have become obsolete (which, arguably they have). It's that the things that are missing are qualitatively different.
Today, one of the most common graphics devices is a digital camera (which is not mentioned in either book). The digital camera is very different than the devices described above for a number of reasons:
Just about every computer scientist - actually, just about every computer user - will at some point encounter JPEG and GIF image compression. (What happens when we put those vacation photos on the web?) Very few, even when the devices were in their heyday, needed to understand the algorithms that drove an electrostatic plotter.
What makes matters even more difficult for a graphics student is that you still need to know about lines and spheres - in fact maybe more so, since you'll be dealing with them not just on fancy engineering workstations, but on home PCs (and looking forward, on the dashboard display of your car, your credit card information appliance, ...).
What saves us is that all of these things have become so commonplace and standardized that the computers ``do it for us.'' For example, nowadays, basic graphics functionality, such as the ability to draw lines, is expected as operating system functionality, and is probably implemented in hardware. It is much less important to know how to draw a line on a bitmapped display, although, you still do need to understand the underlying issues. The good news is that these its the same underlying issues are actually the same whether your drawing a line, or processing your vacation photos, and they haven't changed. The ways we use the basic concepts may be different, but the concepts themselves are not.
The problem is that the concepts really aren't very easy to learn, except in the context of a problem. For example, you can learn about sampling in a theoretical way in a signal processing class and its challenging to connect this to the graphics problems. In a graphics text, this key concept tends to get hidden away inside of a specific problem (sampling often only gets a brief discussion in the context of line drawing and anti-aliasing). The key concept is there in the texts, its just hidden away in a section thats easy to miss, thats discussing a topic thats less exciting nowadays.
My idea is that you can learn these concepts in the context of more up-to-date (and interesting) problems. Of course, I may end up losing the forest for the trees just as I am accusing the older textbooks of. Image warping and morphing may seem like a more interesting application of sampling today, but for all we know, in 5 years, this too will be a passe' topic that we have operating system support for. My hope is that by being explicit about the undelying concepts from the start, and trying to remember that this is more likely to be what we're going to need 5 years from now, I may stand a better chance.
Why ``Textbook'' in quotes?