Digest of Jim Blinn's Corner, Morgan Kaufmann Publishers, Inc.
Volume I, A trip down the graphics pipeline, 1996.
Volume II, Dirty pixels, 1998.
Here is a review of the first volume for Math 198. The second
volume just arrived and there is a cursory review at the end.
Fromt Blinn's preface to the second volume:
"The first volume...dealt mostly with geometry and the graphics pipeline.
[The second volume] deals mostly with image processing and pixel arithmetic.
Chapters in Volume I:
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 mathematics 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 (which we use in Math 198) 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. The matrix operations used here are part of IrisGL and OpenGL.
The programming framework is also embedded in the VRML standards. But it is
best explored after you have become familiar with the graphics pipeline.
For example, once you have mastered illiSkel, you can build a blobby man
puppet and animate it interactively. This is a semester's project for a
journeyman C/Unix/GL programmer.
4. Platonic Solids
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 education. But what is a warm-up exercise for an
advanced programmer could be a very profitable project for an apprentice.
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
This chapter belongs with Ch 3, 6, 8, 18, 13 and 16, 14, 15, in that order.
It builds on even a superficial understanding of who the whole pipeline
works. Chapter 14 has a summary outline of the pipeline, and that might
be read first. You would modify an illiSkel to incorporate such shadows.
While this is easier than Blobby Man, it helps to know about perspective.
This too could be a very nice semester project.
7. Things I Hope Not to See or Hear at SIGGRAPH
Even funnier than Ch.5. Read it to get to know the computer graphics
community better.
8. Where Am I? What Am I Looking At?
This is pretty advanced unless you've had a course in linear algebra. On
the other hand, this could be a good motivator to learn this otherwise
dry subject. This chapter is also a very compact summary of what you know
after you have worked with the pipeline for a while.
9. The Three-Dimensional Kaleidoscope
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
could be a very good project, especially for the CAVE. It also encourages
greater artistic experimentation and free-form design for a smaller investment
of effort than the other projects suggested so far.
10. Fractional Invisibility
This is definitely an advanced subject. Both IrisGL and OpenGL provide a
z-buffer which makes the techniques described here necessary only for
special parts of computational solid geometry (CSG). Probably not a rewarding
project for Math 198.
11. Optimal Tubes
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. Read this!
13. Line Clipping
This is a chapter from a regular course on computer graphics. Math 198 is
an irregular course. You might, however, read this chapter just to know what
you're missing. Seriously, 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
15. Subpixelic Particles
These two chapters are definitely advanced. They do not lend themselves
easily to a Math 198 project. 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. You should read the first part of Ch. 14, however.
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" can do, be they Xerox, Apple,
Microsoft, or Sun, they can't help you do anything original, like
non-rectangular windowing. And we have a important project underway that
needs to do just that. If you are interested in joining project illiNarnia,
you will have to skim this chapter.
17. Hyperbolic Interpolation
This chapter is really about homogeneous coordinates. And those are at the
heart of the geometry pipeline, as you will learn to appreciate on the way
to understanding math behind the illiSkeleton. (Of course, you can use illiSkel
even without understanding all the math.) This is definitely advanced,
because it requires an understanding of matters discussed in the next chapter.
18. The Homogeneous Perspective Transform
Advanced stuff, but it can be appreciated with the help of the illiView
real-time interactive computer animations (RTICA). So this is outide reading
for the course, at least for those of you who will take on the illiSkel.
For less advanced people, the experiments we conduct with illiSkel may serve
as keys to open some door for reading this chapter.
19. Backface Culling Snags
More on drawing solids quickly. Rather more computerish than mathematical.
But there is a footnote to Ch. 4, telling you how to turn a cube into a
dodecahedron. That could be nice exercise.
20. Farewell To FORTRAN
This chapter is only a part of what Jim Blinn has to say about the
"language wars." There is no best language to program in. It is a matter of
style, and politics. It is also a serious assessment of the current C++ vogue.
Enjoy!
Volume II.
1. The World's Largest Easter Egg and What Came Out of it.
2. What We Need Around Here Is More Aliasing.
Antialiasing (because it's something you can see) is an excellent way to wade
into the subject of image processing. Something to hold onto when you're
learning Fourier analysis, convolutions, low pass filters and so on.
3. Return Of The Jaggy.
Continuation of Chapter 2.
4. How Many Different Cubic Curves Are There.
A practical application of classical algebraic geometry. More for math majors.
5. Dirty Pixels.
Why floating point arithmetic is dangerous in graphics. But Blinn also tells you
about "gamma correction".
6. Cubic Curves Update.
7. Triage Tables.
Something simple about culling and hidden-line algorithms.
8. The Wonderful World of Video.
9. Uppers and Downers.
10. Uppers and Downers, Part II.
11. The World of Digital Video.
12. How I Spent My Summer Vacatation, 1976.
13. NTSC: Nice Technology, Super Color.
14. What's the Deal with TCT?
15. Quantization Error and Dithering.
16. Compsoiting - Theory.
17. "Compositing" - Practice.
18. How to Attend a SIGGRAPH Conference.
19. Three Wrongs Make a Right.
20. Fun with Premultiplied Alpha.
A. Transformation Notation.