Computer Graphics Using OpenGL

Prentice Hall
Francis S Hill, Jr. / Stephen M Kelley  
Total pages
December 2006
Related Titles

Product detail

Product Price CHF Available  
Computer Graphics Using OpenGL
223.70 approx. 7-9 days


For undergraduate Computer Graphics courses.

Updated throughout for the latest developments and technologies, this text combines the principles and major techniques in computer graphics with state-of-the-art examples that relate to things students see everyday on the Internet and in computer-generated movies. Practical, accessible, and integrated in approach, it carefully presents each concept, explains the underlying mathematics, shows how to translate the math into program code, and displays the result.


  • Text-specific Web site
  • Easy for student to use and obtain source code from book.  – Offers convenient access to many images, references and sample programs to support the discussion in the book.
  • Vastly expanded to include all color images, source programs for all complete programs given in the text, and resources closely related to the book’s material.
  • C++ as the underlying programming language –Introduces useful classes for graphics, but does not force a rigid object-oriented posture.
  • Early, in-depth treatment of 3D graphics and the underlying mathematics – Enables students to produce realistic 3D graphics much earlier in a course. Students can write programs to “fly” a camera through a 3D scene.
  • Extensive case studies at the end of each chapter.
  • Clear flow of ideas from first principles to the techniques of graphics:
  • Develops the underlying mathematics from first principles.
  • Shows students where the math comes from, why it is used, and how it is applied, allowing them to grasp it much more quickly and apply it to their graphics work.
  • Clear presentation of the links between a concept, underlying mathematics, program coding, and the result – e.g., the use of vectors in graphics, the underlying theory of transformations, the mathematics of perspective projections, etc.
  • An abundance of state-of-the-art worked examples.
  • Numerous practice exercises (approx. 30 per chapter).

New to this Edition

  • Updated treatment of graphics hardware and algorithms
  •  More emphasis on interactive graphics – Includes menu design and interaction, and the use of OpenGL to simplify real-time interactions such as flying a camera through a scene.
  • Discussion of the development of video games through history.
  • Discussions on the graphics pipeline – Includes coverage of the latest versions OpenGL & the Shading Language and the benefits they provide.
  • Reduced emphasis on PostScript, Hidden Surface Removal, Relative Drawing, and Fractals.  These topics are still covered but have been moved to appendices.
  • Full working source code provided for all significant examples, either in the book or on the book’s companion website. 
  • Significant improvements to organization, based on second edition user feedback and reviewer comments.
  • Larger number of problems than the previous edition.
  • Case studies revised throughout – Increased in number and refined throughout; they correspond more closely to the topics in each chapter.

Table of Contents


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

     1.6. Chapter Summary & Exercises

     1.7. For Further Reading.

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

     2.5. Summary

     2.6. Case Studies

     2.7. For Further Reading.

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.

     3.6. Summary.

     3.7. Case Studies

     3.8. For Further Reading.

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.

4.9. Summary.

4.10. Case Studies

     4.11. For Further Reading.

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.

5.7. Summary.

5.8. Case Studies.

5.9. For Further Reading.

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

6.7. Summary.

6.8. Case Studies.

6.9. For Further Reading.

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.

     7.7. Summary

     7.8. Case Studies

     7.9. For Further Reading.


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)

8.8. Summary.

8.9. Case Studies

8.10. For Further Reading.


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.

9.10. Summary.

9.11. Case Studies.

9.12. Further Reading

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.

10.12. Summary

10.13. Case Studies.

10.14. Further Reading.

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.

11.7. Summary

11.8. Case Studies

11.9. For Further Reading.

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

12.15. Summary.

12.16. Case Studies.

12.17. For Further Reading


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.





F.S. Hill Jr. is a Professor Emeritus of the Electrical and Computer Engineering Department at the University of Massachusetts at Amherst.  He received a Ph. D. degree from Yale University in 1968, worked for 3 years in digital data transmission at Bell Telephone Laboratories, and joined the University in 1970.  He is the author of numerous articles in the field of signal processing, communications, and computer graphics.  He has been editor and associate editor of the IEEE Communications Society magazine.  He is also a fellow of the IEEE.  He is co-author of the book Introduction To Engineering and has won several awards for outstanding teaching.


Stephen M. Kelley and Dr. Hill met in 2000 in connection with a National Science Foundation distance learning project.  Since then co-teaching courses in computer graphics at the University of Massachusetts and co-authoring Computer Graphics using OpenGL, 3rd Edition.  Stephen Kelley recently graduated from the University of Massachusetts with a degree in Interactive Multimedia and Computer Graphics along with a minor in Information Technology.  Stephen also runs his own web development and consulting company, Intangible Inc.

Instructor Resources