Graphics Systems and Models | |

Applications of Computer Graphics | |

A Graphics System | |

Images: Physical and Synthetic | |

Imaging Systems | |

The Synthetic-Camera Model | |

The Programmer's Interface | |

Graphics Architectures | |

Programmable Pipelines | |

Performance Characteristics | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Graphics Programming | |

The Sierpinski Gasket | |

Programming Two-Dimensional Applications | |

The OpenGL API | |

Primitives and Attributes | |

Color | |

Viewing | |

Control Functions | |

The Gasket Program | |

Polygons and Recursion | |

The Three-Dimensional Gasket | |

Plotting Implicit Functions | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Input and Interaction | |

Interaction | |

Input Devices | |

Clients and Servers | |

Display Lists | |

Programming Event-Driven Input | |

Menus | |

Picking | |

A Simple Paint Program | |

Building Interactive Models | |

Animating Interactive Programs | |

Design of Interactive Programs | |

Logic Operations | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Geometric Objects and Transformations | |

Scalars, Points, and Vectors | |

Three-Dimensional Primitives | |

Coordinate Systems and Frames | |

Frames in OpenGL | |

Modeling a Colored Cube | |

Affine Transformations | |

Translation, Rotation, and Scaling | |

Transformations in Homogeneous Coordinates | |

Concatenation of Transformations | |

OpenGL Transformation Matrices | |

Interfaces to Three-Dimensional Applications | |

Quaternions | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Viewing | |

Classical and Computer Viewing | |

Viewing with a Computer | |

Positioning of the Camera | |

Simple Projections | |

Projections in OpenGL | |

Hidden-Surface Removal | |

Interactive Mesh Displays | |

Parallel-Projection Matrices | |

Perspective-Projection Matrices | |

Projections and Shadows | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Shading | |

Light and Matter | |

Light Sources | |

The Phong Reflection Model | |

Computation of Vectors | |

Polygonal Shading | |

Approximation of a Sphere by Recursive Subdivision | |

Light Sources in OpenGL | |

Specification of Materials in OpenGL | |

Shading of the Sphere Model | |

Global Illumination | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

From Vertices to Fragments | |

Basic Implementation Strategies | |

Four Major Tasks | |

Clipping | |

Line-Segment Clipping | |

Polygon Clipping | |

Clipping of Other Primitives | |

Clipping in Three Dimensions | |

Rasterization | |

Bresenham's Algorithm | |

Polygon Rasterization | |

Hidden-Surface Removal | |

Antialiasing | |

Display Considerations | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Discrete Techniques | |

Buffers | |

Digital Images | |

Writing into Buffers | |

Bit and Pixel Operations in OpenGL | |

Examples | |

Mapping Methods | |

Texture Mapping | |

Texture Mapping in OpenGL | |

Texture Generation | |

Environment Maps | |

Compositing Techniques | |

Multirendering and the Accumulation Buffer | |

Sampling and Aliasing | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Programmable Shaders | |

Programmable Pipelines | |

Shading Languages | |

Extending OpenGL | |

The OpenGL Shading Language | |

The OpenGL Shading Language | |

Linking Shaders with OpenGL Programs | |

Moving Vertices | |

Lighting with Shaders | |

Fragment Shaders | |

Per-Vertex Versus Per-Fragment Phong Shading | |

Samplers | |

Cube Maps | |

Bump Mapping | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Modeling | |

Symbols and Instances | |

Hierarchical Models | |

A Robot Arm | |

Trees and Traversal | |

Use of Tree Data Structures | |

Animation | |

Graphical Objects | |

Scene Graphs | |

A Simple Scene Graph API | |

Other Tree Structures | |

Graphics and the Internet | |

Procedural Methods | |

Physically Based Models and Particle Systems | |

Newtonian Particles | |

Solving Particle Systems | |

Constraints | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Curves and Surfaces | |

Representation of Curves and Surfaces | |

Design Criteria | |

Parametric Cubic Polynomial Curves | |

Interpolation | |

Hermite Curves and Surfaces | |

Bíezier Curves and Surfaces | |

Cubic B-Splines | |

General B-Splines | |

Rendering of Curves and Surfaces | |

The Utah Teapot | |

Algebraic Surfaces | |

Curves and Surfaces in OpenGL 615 | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Advanced Rendering | |

Going Beyond Pipeline Rendering | |

Ray Tracing | |

Building a Simple Ray Tracer | |

The Rendering Equation | |

Radiosity | |

RenderMan | |

Large-Scale Rendering | |

Image-Based Rendering | |

Summary and Notes | |

Suggested Readings | |

Exercises | |

Sample Programs | |

Sierpinski Gasket Program | |

Recursive Generation of Sierpinski Gasket | |

Recursive Three-Dimensional Sierpinski Gasket | |

Marching Squares | |

Square Drawing Program | |

Paint Program | |

Double-Buffering Example | |

Selection-Mode Picking Program | |

Rotating-Cube Program | |

Rotating Cube Using Vertex Arrays | |

Rotating Cube with a Virtual Trackball | |

Moving Viewer | |

Sphere Program | |

Mandelbrot Set Program | |

Bresenham's Algorithm | |

Rotating Cube with Texture | |

GLSL Example | |

Scene-Graph Example | |

Program for Drawing Bíezier Curves | |

Spaces | |

Scalars | |

Vector Spaces | |

Affine Spaces | |

Euclidean Spaces | |

Projections | |

Gram-Schmidt Orthogonalization | |

Suggested Readings | |

Exercises | |

Matrices | |

Definitions | |

Matrix Operations | |

Row and Column Matrices | |

Rank | |

Change of Representation | |

The Cross Product | |

Eigenvalues and Eigenvectors | |

Suggested Readings | |

Exercises | |

Synopsis of OpenGL Functions | |

Specifying Simple Geometry | |

Attributes | |

Working with the Window System | |

Interaction | |

Enabling Features | |

Transformations | |

Viewing | |

Defining Discrete Primitives | |

Display Lists | |

Picking | |

Lighting | |

Texture Mapping | |

State and Buffer Manipulation | |

Vertex Arrays | |

Blending Functions | |

Query Functions | |

Curve and Surface Functions | |

GLU Quadrics | |

GLSL Functions | |

References | |

Function Index | |

Subject Index | |

Table of Contents provided by Publisher. All Rights Reserved. |