This is not a "How did Photoshop do it?" kind of algorithm book. I would suggest that if you want to make good use of this book that you already have had a course on the theory of algorithms, and thus understand how to follow the derivation of whether an algorithm is O(n), O(nlgn), etc. That is because the author dedicates much space to determining what the time-efficiency of each algorithm is before he goes into the details. Next, the author talks about each algorithm in pseudocode, and then finally there is the actual C++ code for the algorithm itself. Not every algorithm involves OpenGL, because quite a few of them don't actually draw anything, they just support the drawing of images by other algorithms. The book is well illustrated. Whenever there might be a question about an algorithm that words or equations can't answer, there always seems to be a figure available to finish the job. The book has a very academic tone to it, and each chapter ends with extensive bibliographic notes. The following is the table of contents:
1. Overview - A fly-over of the entire book.
2. Abstract Data Structures - Talks about solutions to common problems that come up time and again in visual computing. Topics include the Fibonacci numbers, conversions between 1D and nD array indices, how to flood-fill an area using a queue, and detecting whether or not a set of line segments intersect. This may not seem to have much to do with data structures, but the book ties it all in.
3. Coordinate Pipelines - Subjects include translation between Euclidean and projective points, 2D polygon transformations, 3D mesh transformations, and how to render multiple views to one device display by using viewport mappings. OpenGL is used heavily in this chapter.
4. Images - An oddly titled chapter, because if you get right down to it, the whole book is technically about images. The topics include the simple task of displaying the RGB color cube in OpenGL as well as the more complex tasks of image warping, image compositing, halftoning, and dithering.
5. Meshes - Meshes come up often when drawing complex and realistic 3D figures. Topics include approximating a sphere by with a mesh and various remeshing experiments and algorithms with the "Stanford Bunny" as a subject of these experiments.
6. Animation - A brief overview of what it takes to make your images "move". I found this the least satisfying of the book's chapters. "Computer Animation" by Parent does a better job of discussing this topic, in my opinion.
7. Randomization - Topics include computing a uniformly random permutation, quick sort, selecting the nth smallest element of an array, and computing the scaled rigid transformation matching a given pair of segments. The author does a great job of discussing the algorithms, but comes up a bit short in the motivation for these algorithms in visual computing.
8. Higher Dimensions for 3D - Includes some good algorithms on computational geometry and how it ties into graphics. Topics include the k-means iterative clusteriing method, rasterizing a Voronoi diagram, and computing an approximation of the smallest enclosing ball in large dimensions. The author does a good job of tying in each algorithm to its significance in graphics.
9. Robustness - Discusses how to determine if certain algorithms are easily "broken". This discussion is done from the perspective of computing the area of triangles using floating point numbers and also determining if and only if two line segments intersect.
This book does not hold your hand on the issues of algorithm theory, C++ programming, OpenGL, or even basic computer graphics and image processing theory. You are expected to already know that material. This book is more about the algorithms that are applicable to geometry, graphics, and vision and what makes them useful, efficient, and robust. Highly recommended.