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.
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