Computer Graphics: Principles and Practice in C, 2nd edition

  • James D. Foley
  • Andries van Dam
  • Steven K. Feiner
  • John F. Hughes

Unfortunately, this item is not available in your country.


The best-selling book on computer graphics is now available in this C-language version. All code has been converted into C, and changes through the ninth printing of the second edition have been incorporated. The book's many outstanding features continue to ensure its position as the standard computer graphics text and reference.

By uniquely combining current concepts and practical applications in computer graphics, four well-known authors provide here the most comprehensive, authoritative, and up-to-date coverage of the field. The important algorithms in 2D and 3D graphics are detailed for easy implementation, including a close look at the more subtle special cases. There is also a thorough presentation of the mathematical principles of geometric transformations and viewing.

In this book, the authors explore multiple perspectives on computer graphics: the user's, the application programmer's, the package implementor's, and the hardware designer's. For example, the issues of user-centered design are expertly addressed in three chapters on interaction techniques, dialogue design, and user interface software. Hardware concerns are examined in a chapter, contributed by Steven Molnar and Henry Fuchs, on advanced architectures for real-time, high performance graphics.

The comprehensive topic coverage includes:

  • Programming with SRGP, a simple but powerful raster graphics package that combines features of Apple's QuickDraw and the MIT X Window System graphics library.
  • Hierarchical, geometric modeling using SPHIGS, a simplified dialect of the 3D graphics standard PHIGS.
  • Raster graphics hardware and software, including both basic and advanced algorithms for scan converting and clipping lines, polygons, conics, spline curves, and text.
  • Image synthesis, including visible-surface determination, illumination and shading models, image manipulation, and antialiasing.
  • Techniques for photorealistic rendering, including ray tracing and radiosity methods.
  • Surface modeling with parametric polynomials, including NURBS, and solid-modeling representations such as B-reps, CSG, and octrees.
  • Advanced modeling techniques such as fractals, grammar-based models, particle systems.
  • Concepts of computer animation and descriptions of state-of-the-art animation systems.

Over 100 full-color plates and over 700 figures illustrate the techniques presented in the book.


Table of contents

1. Introduction.

Image Processing as Picture Analysis.

The Advantages of Interactive Graphics.

Representative Uses of Computer Graphics.

Classification of Applications.

Development of Hardware and Software for Computer Graphics.

Conceptual Framework for Interactive Graphics.

2. Programming in the Simple Raster Graphics Package (SRGP)/.

Drawing with SRGP/.

Basic Interaction Handling/.

Raster Graphics Features/.

Limitations of SRGP/.

3. Basic Raster Graphics Algorithms for Drawing 2d Primitives.


Scan Converting Lines.

Scan Converting Circles.

Scan Convertiing Ellipses.

Filling Rectangles.

Fillign Polygons.

Filling Ellipse Arcs.

Pattern Filling.

Thick Primiives.

Line Style and Pen Style.

Clipping in a Raster World.

Clipping Lines.

Clipping Circles and Ellipses.

Clipping Polygons.

Generating Characters.



4. Graphics Hardware.

Hardcopy Technologies.

Display Technologies.

Raster-Scan Display Systems.

The Video Controller.

Random-Scan Display Processor.

Input Devices for Operator Interaction.

Image Scanners.

5. Geometrical Transformations.

2D Transformations.

Homogeneous Coordinates and Matrix Representation of 2D Transformations.

Composition of 2D Transformations.

The Window-to-Viewport Transformation.


Matrix Representation of 3D Transformations.

Composition of 3D Transformations.

Transformations as a Change in Coordinate System.

6. Viewing in 3D.


Specifying an Arbitrary 3D View.

Examples of 3D Viewing.

The Mathematics of Planar Geometric Projections.

Implementing Planar Geometric Projections.

Coordinate Systems.

7. Object Hierarchy and Simple PHIGS (SPHIGS).

Geometric Modeling.

Characteristics of Retained-Mode Graphics Packages.

Defining and Displaying Structures.

Modeling Transformations.

Hierarchical Structure Networks.

Matrix Composition in Display Traversal.

Appearance-Attribute Handling in Hierarchy.

Screen Updating and Rendering Modes.

Structure Network Editing for Dynamic Effects.


Additional Output Features.

Implementation Issues.

Optimizing Display of Hierarchical Models.

Limitations of Hierarchical Modeling in PHIGS.

Alternative Forms of Hierarchical Modeling.

8. Input Devices, Interaction Techniques, and Interaction Tasks.

Interaction Hardware.

Basic Interaction Tasks.

Composite Interaction Tasks.

9. Dialogue Design.

The Form and Content of User-Computer Dialogues.

User-Interfaces Styles.

Important Design Considerations.

Modes and Syntax.

Visual Design.

The Design Methodology.

10. User Interface Software.

Basic Interaction-Handling Models.

Windows-Management Systems.

Output Handling in Window Systems.

Input Handling in Window Systems.

Interaction-Technique Toolkits.

User-Interface Management Systems.

11. Representing Curves and Surfaces.

Polygon Meshes.

Parametric Cubic Curves.

Parametric Bicubic Surfaces.

Quadric Surfaces.

12. Solid Modeling.

Representing Solids.

Regularized Boolean Set Operations.

Primitive Instancing.

Sweep Representations.

Boundary Representations.

Spatial-Partitioning Representations.

Constructive Solid Geometry.

Comparison of Representations.

User Interfaces for Solid Modeling.

13. Achromatic and Colored Light.

Achromatic Light.

Chromatic Color.

Color Models for Raster Graphics.

Reproducing Color.

Using Color in Computer Graphics.

14. The Quest for Visual Realism.

Why Realism?

Fundamental Difficulties.

Rendering Techniques for Line Drawings.

Rendering Techniques for Shaded Images.

Improved Object Models.



Improved Displays.

Interacting with Our Other Senses.

Aliasing and Antialiasing.

15. Visible-Surface Determination.

Functions of Two Variables.

Techniques for Efficient Visible-Surface Determination.

Algorithms for Visible-Line Determination.

The z-Buffer Algorithm.

List-Priority Algorithms.

Scan-Line Algorithms.

Area-Subdivision Algorithms.

Algorithms for Octrees.

Algorithms for Curved Surfaces.

Visible-Surface Ray Tracing.

16. Illumination And Shading.

Illumination Modeling.

Shading Models for Polygons.

Surface Detail.



Interobject Reflections.

Physically Based Illumination Models.

Extended Light Sources.

Spectral Sampling.

Improving the Camera Model.

Global Illumination Algorithms.

Recursive Ray Tracing.

Radiosity Methods.

The Rendering Pipeline.

17. Image Manipulation and Storage.

What Is an Image?


Image Processing.

Geometric Transformations of Images.

Multipass Transformations.

Image Compositing.

Mechanisms for Image Storage.

Special Effects with Images.


18. Advanced Raster Graphic Architecture.

Simple Raster-Display System.

Display-Processor Systems.

Standard Graphics Pipeline.

Introduction to Multiprocessing.

Pipeline Front-End Architecture.

Parallel Front-End Architectures.

Multiprocessor Rasterization Architectures.

Image-Parallel Rasterization.

Object-Parallel Rasterization.

Hybrid-Parallel Rasterization.

Enhanced Display Capabilities.

19. Advanced Geometric and Raster Algorithms.


Scan-Converting Primitives.


The Special Problems of Text.

Filling Algorithms.

Making copyPixel Fast.

The Shape Data Structure and Shape Algebra.

Managing Windows with bitBlt.

Page Description Languages.

20. Advanced Modeling Techniques.

Extensions of Previous Techniques.

Procedural Models.

Fractal Models.

Grammar-Based Models.

Particle Systems.

Volume Rendering.

Physically Based Modeling.

Special Models for Natural and Synthetic Objects.

Automating Object Placement.

21. Animation.

Conventional and Computer-Assisted Animation.

Animation Languages.

Methods of Controlling Animation.

Basic Rules of Animation.

Problems Peculiar to Animation.

Appendix: Mathematics for Computer Graphics.

Vector Spaces and Affine Spaces.

Some Standard Constructions in Vector Spaces.

Dot Products and Distances.


Linear and Affine Transformations.

Eigenvalues and Eigenvectors.

Newton-Raphson Iteration for Root Finding.


Index. 0201848406T04062001

Published by Addison-Wesley Professional (August 4th 1995) - Copyright © 1996