Updated throughout for the latest developments and technologies, this book combines the principles and major techniques in computer graphics with state-of-the-art examples. Updates treatment of graphics hardware and algorithms. Discusses the development of video games through history. Emphasizes interactive graphics more strongly than in previous editions. Relates examples to things readers see everyday on the Internet and in computer-generated movies. Carefully presents each concept, explains the underlying mathematics, shows how to translate the math into program code, and displays the result. A thorough, useful reference for anyone interested in computer graphics.
a solid introduction, but could be better The title of the book is misleading; It is rather an introduction to computer graphics; The explanations on the graphics pipeline are really enlightening; The introduction on the curves is also worth reading. I consider it to be also a good introduction to OpenGL. However, it deserves only 3 stars because of the too many typo errors (and that's the third edition...). Moreover some topics are too superficially treated, particularly extents or bounding volumes (which are of great importance in computer graphics), and surfaces. The book is verbose, which is acceptable when some notions are hard to grasp, but it is definitely too verbose at the start of each chapters where you will find a "preview" followed by an "Introduction" section. One repeats the other. In addition, the appendices only contribute to the thickness of the book. An appendix on matrix algebra where you will learn how to add / multiply matrices (...) and an appendix on the turtle drawing, a hot thing in the early 80s... There is no real bibliography section, and no errata on the author's web site. I was also not pleased by the exercises; the ones that are trivial are fully developed by the author, and the solution to the thornier ones are not presented.
Excellent computer graphics tutorial This is a good solid introductory text on computer graphics theory and programming. Note that the book uses OpenGL rather than teaching it, so if you are looking for an OpenGL tutorial you will be disappointed. For that consult the classic "Red Book" on the subject. This book does throw in a couple of advanced topics - fractals, virtual realism, and ray tracing, for example. I really liked how the explanations were very detailed, and how pseudocode accompanies the explanation of every algorithm. The pseudocode is C-like and is therefore easily understandable. Also, the author makes excellent and frequent use of very excellent figures to get his points across. I also liked all of the practice problems, because they are good sanity checks on whether or not you really understand the material.
I will add that I was at first hesitant to add this book to my collection, because in the early 90's I used a textbook by this same author in a class I was taking on computer graphics, and it was about the most awful thing I have ever seen in print. There were a couple of good chapters, but most of it was paragraph after paragraph of rambling text without equations, codes, or anything that approached a tutorial. I wasn't a novice to this subject at the time, either, so it wasn't a lack of knowledge on the subject that made me hate that book. I'm saying all of this just in case this was your last experience with this author, don't let it prevent you from getting this book. Hill seems to have learned from his past mistakes, and I highly recommend this text. I notice the table of contents shown is for an older edition. This edition has changed considerably, so I show the new table of contents for the 3rd edition next:
Chapter 1 Introduction to Computer Graphics 1.1 What is Computer Graphics? 1.2 Where Computer Generated pictures are Used 1.3 Elements of Pictures created in Computer Graphics. 1.4 Graphics display devices 1.5 Graphics Input Primitives and Devices
Chapter 2 Getting Started Drawing Figures 2.1 Getting started making pictures 2.2 Drawing Basic Graphics Primitives 2.3 Making Line-drawings 2.4 Simple interaction with mouse and keyboard
Chapter 3 Additional Drawing Tools 3.1. Introduction 3.2. World Windows and Viewports 3.3. Clipping Lines 3.4. Regular Polygons, Circles, and Arcs 3.5. The Parametric Form of a Curve.
Chapter 4 Vector Tools for Graphics 4.1. Introduction 4.2. Review of Vectors 4.3. The Dot Product. 4.4. The Cross Product of Two Vectors. 4.5. Representations of Key Geometric Objects. 4.6. Finding the Intersection of two Line Segments. 4.7. Intersections of Lines with Planes, and Clipping. 4.8. Polygon Intersection Problems.
Chapter 5 Transformations of Objects 5.1. Introduction 5.2. Introduction to Transformations 5.3. 3D Affine Transformations 5.4. How To Change Coordinate Systems 5.5. Affine Transformations used in a Program. 5.6. To Draw 3D Scenes Interactively with OpenGL.
Chapter 6 Modeling Shapes with Polygonal Meshes. 6.1. Introduction 6.2. Introduction to Solid Modeling with Polygonal Meshes. 6.3. Polyhedra. 6.4. Extruded Shapes. 6.5. Mesh Approximations to Smooth Objects. 6.6. Particle Systems and Physically Based Systems
Chapter 7 Three-Dimensional Viewing 7.1 Introduction 7.2. The Camera Revisited. 7.3. To Specify a Camera in a program. 7.4. Perspective Projections of 3D Objects. 7.5. To Produce Stereo Views. 7.6. Taxonomy of Projections.
Chapter 8 Rendering Faces for Visual Realism 8.1. Introduction 8.2. Introduction to Shading Models 8.3. Flat Shading and Smooth Shading. 8.4. Adding Hidden Surface Removal. 8.5. To Add Texture to Faces. 8.6. To Add Shadows of Objects. 8.7. OpenGL 2.0 & The Shading Language (GLSL)
Chapter 9 Tools for Raster Displays 9.1. Introduction 9.2. Manipulating Pixmaps. 9.3. Combining Pixmaps. 9.4. Do It Yourself Line Drawing: Bresenham's Algorithm. 9.5 To Define and Fill Regions of Pixels. 9.6. Manipulating Symbolically-defined Regions. 9.7. Filling Polygon-Defined Regions. 9.8. Aliasing and Anti-Aliasing Techniques. 9.9. Creating More Shades and Colors.
Chapter 10 Curve and Surface Design 10.1. Introduction 10.2. Describing Curves using Polynomials. 10.3. On Interactive Curve Design. 10.4. Bezier Curves for Curve Design. 10.5. Properties of Bezier Curves. 10.6. Finding Better Blending functions. 10.7. The B-Spline Basis Functions. 10.8. Useful Properties of B-Spline Curves for Design. 10.9. Rational Splines and NURBS Curves. 10.10. A Glimpse at Interpolation. 10.11. Modeling Curved Surfaces.
Chapter 11 Color Theory 11.1. Introduction 11.2. Color Description 11.3. The CIE Standard 11.4. Color Spaces 11.5. Indexed Color and the LUT. 11.6. Color Quantization.
Chapter 12 Ray Tracing 12.1. Introduction 12.2. Setting Up the Geometry of Ray Tracing 12.3. Overview of the Ray-Tracing Process 12.4. Intersection of a Ray with an Object. 12.5. Organizing a Ray Tracer Application. 12.6. Intersecting Rays with Other Primitives 12.7. To Draw Shaded Pictures of Scenes 12.8. Adding Surface Texture. 12.9. Anti-aliasing Ray Tracings. 12.10. Using Extents 12.11. Adding Shadows for Greater Realism. 12.12. Reflections and Transparency 12.13. Compound Objects: Boolean Operations on Objects 12.14. Ray Tracing vs. Ray Casting
A1. Graphics Tools - Obtaining OpenGL.
A2. Some Mathematics for Computer Graphics A2.1 Some Key Definitions for Matrices and their Operations A2.2. Some Properties of Vectors and their operations. A2.3. Spherical Coordinates and Direction Cosines.
A3. An Introduction to SDL: Scene Description Language A3.1. Syntax of SDL A3.2. Macros in SDL. A3.3. Extending SDL.
A4. Fractals and The Mandelbrot Set A4.1. Introduction A4.2. Fractals and Self-Similarity A4.3. The Mandelbrot Set
A5. Relative and Turtle Drawing. A5.1. To Develop moveRel() and lineRel(). A5.2. Turtle Graphics A5.3. Figures Based on Regular Polygons.
You'll note that the main difference between the second and third editions is that Hidden Surface Removal and Fractals no longer have dedicated chapters, but additional chapters on other subjects have not been added. The HSR material is now part of another chapter, and the Fractal subject matter is part of the appendix. One positive difference is the addition of some good material on the OpenGL Shading Language, which is a hot topic these days. Also, the material in the appendix on Postscript has been eliminated.
Too many typos and errors I just bought this book and up to chapter 3 there are more errors and typos than what I care to recall. You would expect more of a book with a price tag as this one. Furthermore, the writing style is bad. The author begins a paragraph with one idea and finishes with something totally different, which makes it hard to read.
It is a very good book otherwise, but keep this in mind when buying.
Excellent book This is an excellent book. I was coming from a novice OpenGL user and wanted to branch out from OpenGL, to understand more impressive CG techqniques. He uses OpenGL, but it's the underlying techniques that make this book impressive. He goes beyond the API and delves into a number of interesting areas. Good overall introduction, with a fair amount of code examples and discussion of how to modifiy what he gives you. Not perfect, I would have liked another chapter about radiosity, or more ray tracing, but really excellent.
Great Text Like most of the books I buy online, this one was also for a class I'm currently taking. The instructor for this class is fresh out of the box and this is his first semester and class ever. Needless to say, any learning I have to do in this class is taught to me by reading the book. It is more of a teaching book than a techincal reference book, but the good news is, they offer a free online techincal reference book. The best of both worlds. If you're starting off in graphics like me, this is a great investment....