Part II: Part II: The New Testament
Part III: Part III: The Apocrypha
1. Introduction to 3D Graphics and OpenGL
A Brief History of Computer Graphics
Basic 3D Programming Principles
Immediate Mode and Retained Mode
OpenGL: An API, Not a Language
Standard Libraries and Headers
Animation with OpenGL and GLUT
When Bad Things Happen to Good Code
3. Drawing in Space: Geometric Primitives and Buffers
Approximating Curves with Straight Lines
Culling: Hiding Surfaces for Performance
Filling Polygons, or Stippling Revisited
4. Geometric Transformations: The Pipeline
Is This the Dreaded Math Chapter?
The Matrix: Mathematical Currency for 3D Graphics
Performing Your Own Transformations
Adding Transformations Together
Moving Around in OpenGL Using Cameras and Actors
Euler Angles: “Use the Frame, Luke!”
5. Color, Materials, and Lighting: The Basics
The Computer as a Photon Generator
Calculating Ambient Light Effects
Setting Up Cosmic Background Radiation
Setting the Material Properties
6. More on Colors and Materials
Changing the Blending Equation
The Imaging “Subset” and Pipeline
8. Texture Mapping: The Basics
9. Texture Mapping: Beyond the Basics
11. It’s All About the Pipeline: Faster Geometry Throughput
Managing and Using Buffer Objects
Label the Objects for Feedback
Step 2: Get Feedback on the Object
13. Occlusion Queries: Why Do More Work Than You Need To?
The World Before Occlusion Queries
14. Depth Textures and Shadows
Projecting Your Shadow Map: The “Why”
Projecting Your Shadow Map: The “How”
A Few Words About Polygon Offset
15. Programmable Pipeline: This Isn’t Your Father’s OpenGL
OpenGL Shading Language: A First Glimpse
16. Vertex Shading: Do-It-Yourself Transform, Lighting, and Texgen
Customized Vertex Transformation
17. Fragment Shading: Empower Your Pixel Processing
Oh, Where Is the Home Where the PBOs Roam?
Making Your Whites Whiter and Your Brights Brighter
Gaussian Blur with a Little Help
The Sum Is Greater Than Its Parts
OpenGL Implementations on Windows
Using the OpenGL Rendering Context
GLX—Dealing with the X Windows Interface
22. OpenGL ES: OpenGL on the Small
Which Version Is Right for You?
Application Design Considerations
Dealing with a Limited Environment
EGL: A New Windowing Environment
Presenting Buffers and Rendering Synchronization