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. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.