| |
| |
| |
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 and Procedural Methods | |
| |
| |
| |
Scene Graphs and Real Time | |
| |
| |
| |
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 | |