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