| |
| |
What This Guide Contains | |
| |
| |
What's New in This Edition | |
| |
| |
What You Should Know Before Reading This Guide | |
| |
| |
How to Obtain the Sample Code | |
| |
| |
Nate Robins' OpenGL Tutors | |
| |
| |
Errata | |
| |
| |
Style Conventions | |
| |
| |
Acknowledgments | |
| |
| |
Figures | |
| |
| |
Tables | |
| |
| |
Examples | |
| |
| |
| |
Introduction to OpenGL | |
| |
| |
What Is OpenGL? | |
| |
| |
A Smidgen of OpenGL Code | |
| |
| |
OpenGL Command Syntax | |
| |
| |
OpenGL as a State Machine | |
| |
| |
OpenGL Rendering Pipeline | |
| |
| |
Display Lists | |
| |
| |
Evaluators | |
| |
| |
Per-Vertex Operations | |
| |
| |
Primitive Assembly | |
| |
| |
Pixel Operations | |
| |
| |
Texture Assembly | |
| |
| |
Rasterization | |
| |
| |
Fragment Operations | |
| |
| |
OpenGL-Related Libraries | |
| |
| |
Include Files | |
| |
| |
GLUT, the OpenGL Utility Toolkit | |
| |
| |
Animation | |
| |
| |
The Refresh That Pauses | |
| |
| |
Motion = Redraw + Swap | |
| |
| |
| |
State Management and Drawing Geometric Objects | |
| |
| |
A Drawing Survival Kit | |
| |
| |
Clearing the Window | |
| |
| |
Specifying a Color | |
| |
| |
Forcing Completion of Drawing | |
| |
| |
Coordinate System Survival Kit | |
| |
| |
Describing Points, Lines, and Polygons | |
| |
| |
What Are Points, Lines, and Polygons? | |
| |
| |
Specifying Vertices | |
| |
| |
OpenGL Geometric Drawing Primitives | |
| |
| |
Basic State Management | |
| |
| |
Displaying Points, Lines, and Polygons | |
| |
| |
Point Details | |
| |
| |
Line Details | |
| |
| |
Polygon Details | |
| |
| |
Normal Vectors | |
| |
| |
Vertex Arrays | |
| |
| |
| |
Enabling Arrays | |
| |
| |
| |
Specifying Data for the Arrays | |
| |
| |
| |
Dereferencing and Rendering | |
| |
| |
Interleaved Arrays | |
| |
| |
Attribute Groups | |
| |
| |
Some Hints for Building Polygonal Models of Surfaces | |
| |
| |
An Example: Building an Icosahedron | |
| |
| |
| |
Viewing | |
| |
| |
Overview: The Camera Analogy | |
| |
| |
A Simple Example: Drawing a Cube | |
| |
| |
General-Purpose Transformation Commands | |
| |
| |
Viewing and Modeling Transformations | |
| |
| |
Thinking about Transformations | |
| |
| |
Modeling Transformations | |
| |
| |
Viewing Transformations | |
| |
| |
Projection Transformations | |
| |
| |
Perspective Projection | |
| |
| |
Orthographic Projection | |
| |
| |
Viewing Volume Clipping | |
| |
| |
Viewport Transformation | |
| |
| |
Defining the Viewport | |
| |
| |
The Transformed Depth Coordinate | |
| |
| |
Troubleshooting Transformations | |
| |
| |
Manipulating the Matrix Stacks | |
| |
| |
The Modelview Matrix Stack | |
| |
| |
The Projection Matrix Stack | |
| |
| |
Additional Clipping Planes | |
| |
| |
Examples of Composing Several Transformations | |
| |
| |
Building a Solar System | |
| |
| |
Building an Articulated Robot Arm | |
| |
| |
Reversing or Mimicking Transformations | |
| |
| |
| |
Color | |
| |
| |
Color Perception | |
| |
| |
Computer Color | |
| |
| |
RGBA versus Color-Index Mode | |
| |
| |
RGBA Display Mode | |
| |
| |
Color-Index Display Mode | |
| |
| |
Choosing between RGBA and Color-Index Mode | |
| |
| |
Changing between Display Modes | |
| |
| |
Specifying a Color and a Shading Model | |
| |
| |
Specifying a Color in RGBA Mode | |
| |
| |
Specifying a Color in Color-Index Mode | |
| |
| |
Specifying a Shading Model | |
| |
| |
| |
Lighting | |
| |
| |
A Hidden-Surface Removal Survival Kit | |
| |
| |
Real-World and OpenGL Lighting | |
| |
| |
Ambient, Diffuse, Specular, and Emissive Light | |
| |
| |
Material Colors | |
| |
| |
RGB Values for Lights and Materials | |
| |
| |
A Simple Example" | |