This book is a collection of articles written from the late 80's through the mid 90's about various computer graphics topics. Even though the book doesn't look serious, it does a very good job of explaining several rather complex computer graphics topics better than many other much more expensive textbooks on the subject. Mathematics is clearly explained when needed, and there is some pseudocode included. Since each chapter is an article totally independent of all others, I shall review each article/chapter separately:
1. How Many Ways Can You Draw a Circle?
For people who can program and who can draw points and lines on some system this is a splendid introduction to the way math is used in computer graphics. The "exercises" range from easy to medium hard.
2. What, Teapots Again?
Martin Newell's Teapot is the trademark of computer graphics. The GLUT library for OpenGL has a pre-computed object called the teapotahedron, right along with the dodecahedron and the icosahedron. Here are the coordinates if you want a teapotahedron of your very own in whatever graphics system you want.
3. Nested Transformations and Blobby Man
This is a classic exercise in how matrix algebra makes articulation trees easy to program. It basically uses a set of scaled and translated geometric primitives such as spheres to "build up" the crude figure of a man. This chapter might be useful to robotics students looking for a project.
4. Platonic Solids
The platonic solids are widely used as sample objects. They are the tetrahedron, hexahedron, octahedron, icosahedron, and dodecahedron. Blinn intends this to be a "hip pocket" program for the five platonic solids, something you can tuck away in your memory. OpenGL+GLUT has all these solids as primitives, so this is something you should study once as part of your general computer graphics education.
5. How to Write a Paper for SIGGRAPH
Chapters 5,7,12 and 20 are more about programmers than about programming. It makes for amusing reading, and if you take Blinns advice to heart now, you may improve your technical writing style in other areas too.
6. Me and My (Fake) Shadow
It should be mentioned beforehand that this methods merely allows shadows to be cast on flat ground. This means two things: it can only be used to cast a shadow on a flat surface AND it can only cast the shadow of one object. Blinn admits to having first attempted a hack approach to solve the problem in an unintuitive but slightly quicker way. He also presents his revised methodical approach and shows problems with it.
7. Things I Hope Not to See or Hear at SIGGRAPH
Talks about what makes a bad presentation - Talks read verbatim, illegible slides, micro-sized text, magenta lines on a cyan background, the entire talk echoed on slides, the fading voice, "I'm Almost Out of Time so I'll Just Run Through the Rest of These Slides Real Fast.", "Uh, I Guess That's All I Have to Say."
8. Where Am I? What Am I Looking At?
A generalization of the lookat transformation that Blinn used in space movies. This is pretty advanced unless you've had a course in linear algebra.This chapter is also a very compact summary of what you know after you have worked with the graphics pipeline for a while.
9. The Three-Dimensional Kaleidoscope
Some playing with 3D groups to make related polyhedra and other interesting shapes. This is an interesting entry portal to the whole subject of symmetry. It goes with the Platonic Solids chapter, but can be done independently. This article encourages greater artistic experimentation and free-form design for a smaller investment of effort than the other chapters so far.
10. Fractional Invisibility
A way to remove most of the singuarites in quantitative invisibility types of hidden line algorithms, this is definitely an advanced subject. OpenGL provide a z-buffer which makes the techniques described here necessary only for special parts of computational solid geometry (CSG).
11. Optimal Tubes
A simple modelling primitive for long cylinders that takes into account the viewpoint, this is also an advanced subject. If you ever get a job designing chemical structures or space stations you may need to digest this material, although programming tools are generally available which incorporate this wisdom.
12. The Ultimate Design Tool
This is a more serious piece of advice than it might first seem. Unless a computer graphics programmer can visualize and sketch with pencil and paper there is little chance for fluency and efficiency in their work. This is essential reading.
13. Line Clipping
This is a chapter from a regular course on computer graphics. This is good example of what people do in the field of computational geometry, which is one of the abstract or technical fields behind the applied field of computer graphics.
14. Pixel Coordinates
Mapping the continuous range -1...+1 to pixel coordinate values and how it is usually done wrong.
15. Subpixelic Particles
How to map sub-pixels to regular pixels for subsampling. Chapters 14 and 15 are definitely advanced. A cursory reading will give you an idea of what happens at the very end of the pipeline, the part most computer graphics courses skip.
16. Grandpa, What Does "Viewport" Mean?
The matter treated in this chapter is at the heart of all modern windowing systems. Despite all the things "windows" systems can do, be they Apple, Microsoft, or Sun, they can't help you do anything original, like non-rectangular windowing.
17. Hyperbolic Interpolation
Discusses how to interpolate colors and texture indices onto objects viewed in perspective. This chapter is really about homogeneous coordinates, and those are at the heart of the geometry pipeline. This is definitely advanced, because it requires an understanding of matters discussed in the next chapter.
18. The Homogeneous Perspective Transform
How the perspective transform works in homogeneous coordinates.
19. Backface Culling Snags
More on drawing solids quickly. Rather more computerish than mathematical.
20. Farewell To FORTRAN
This chapter is largely out of date. It is only a part of what Jim Blinn had to say about the "language wars" back in 1994. Of course, now nobody really needs to be coaxed from FORTRAN to C++.