Introduction |
|
xvii | |
PART I OPENGL BASICS |
|
1 | (182) |
|
Chapter 1 The Exploration Begins . . . Again |
|
|
3 | (10) |
|
|
3 | (3) |
|
|
4 | (1) |
|
|
4 | (2) |
|
|
6 | (4) |
|
|
7 | (1) |
|
|
7 | (2) |
|
|
9 | (1) |
|
|
10 | (2) |
|
|
12 | (1) |
|
Chapter 2 Creating a Simple OpenGL Application |
|
|
13 | (22) |
|
|
13 | (3) |
|
|
14 | (2) |
|
|
16 | (4) |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
20 | (11) |
|
|
31 | (2) |
|
|
33 | (2) |
|
Chapter 3 OpenGL States and Primitives |
|
|
35 | (32) |
|
|
35 | (4) |
|
|
36 | (1) |
|
Enabling and Disabling States |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (1) |
|
|
39 | (25) |
|
|
42 | (5) |
|
|
47 | (5) |
|
|
52 | (8) |
|
Using Primitives: Triangles and Quads Example |
|
|
60 | (4) |
|
|
64 | (1) |
|
|
65 | (2) |
|
Chapter 4 Transformations and Matrices |
|
|
67 | (32) |
|
Understanding Coordinate Transformations |
|
|
67 | (6) |
|
|
69 | (1) |
|
|
70 | (1) |
|
|
71 | (2) |
|
Projection Transformations |
|
|
73 | (1) |
|
|
73 | (1) |
|
|
73 | (14) |
|
|
74 | (1) |
|
|
75 | (2) |
|
|
77 | (3) |
|
|
80 | (2) |
|
|
82 | (2) |
|
|
84 | (3) |
|
|
87 | (4) |
|
|
87 | (1) |
|
|
88 | (1) |
|
|
89 | (1) |
|
|
90 | (1) |
|
Manipulating the Viewpoint |
|
|
91 | (4) |
|
|
92 | (1) |
|
Using glRotate() and glTranslate() |
|
|
93 | (1) |
|
Creating Your Own Custom Routines |
|
|
94 | (1) |
|
|
95 | (2) |
|
|
95 | (1) |
|
|
96 | (1) |
|
|
96 | (1) |
|
|
97 | (2) |
|
Chapter 5 Colors, Lighting, Blending, and Fog |
|
|
99 | (34) |
|
|
99 | (3) |
|
|
100 | (1) |
|
|
101 | (1) |
|
|
102 | (2) |
|
|
104 | (1) |
|
|
104 | (17) |
|
OpenGL Lighting and the Real World |
|
|
104 | (2) |
|
|
106 | (3) |
|
|
109 | (2) |
|
|
111 | (4) |
|
|
115 | (3) |
|
|
118 | (2) |
|
|
120 | (1) |
|
|
121 | (7) |
|
|
125 | (1) |
|
|
125 | (2) |
|
|
127 | (1) |
|
|
127 | (1) |
|
|
128 | (3) |
|
|
128 | (2) |
|
|
130 | (1) |
|
|
131 | (1) |
|
|
131 | (2) |
|
Chapter 6 Bitmaps and Images with OpenGL |
|
|
133 | (16) |
|
|
133 | (5) |
|
|
134 | (1) |
|
|
135 | (1) |
|
|
136 | (2) |
|
|
138 | (4) |
|
|
139 | (2) |
|
|
141 | (1) |
|
|
141 | (1) |
|
Magnification, Reduction, and Flipping |
|
|
142 | (1) |
|
|
142 | (1) |
|
|
143 | (4) |
|
|
143 | (2) |
|
|
145 | (2) |
|
|
147 | (2) |
|
Chapter 7 Texture Mapping |
|
|
149 | (34) |
|
An Overview of Texture Mapping |
|
|
150 | (1) |
|
|
151 | (1) |
|
|
152 | (14) |
|
|
152 | (3) |
|
|
155 | (6) |
|
|
161 | (2) |
|
|
163 | (3) |
|
|
166 | (3) |
|
Mipmaps and the OpenGL Utility Library |
|
|
167 | (1) |
|
Automatic Mipmap Generation |
|
|
168 | (1) |
|
|
169 | (5) |
|
|
170 | (3) |
|
|
173 | (1) |
|
Texture Environments and Texture Functions |
|
|
174 | (4) |
|
Specifying the Texture Environment |
|
|
175 | (3) |
|
|
178 | (3) |
|
|
178 | (3) |
|
|
181 | (2) |
PART II BEYOND THE BASICS |
|
183 | (100) |
|
Chapter 8 OpenGL Extensions |
|
|
185 | (12) |
|
|
185 | (3) |
|
|
186 | (1) |
|
|
187 | (1) |
|
|
187 | (1) |
|
|
188 | (1) |
|
|
188 | (3) |
|
|
189 | (1) |
|
Obtaining the Function's Entry Point |
|
|
190 | (1) |
|
|
191 | (1) |
|
|
191 | (1) |
|
|
192 | (3) |
|
|
193 | (1) |
|
|
193 | (1) |
|
Using GLee with Core Extensions |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
195 | (2) |
|
Chapter 9 More on Texture Mapping |
|
|
197 | (24) |
|
More on Texture Specification |
|
|
197 | (4) |
|
|
197 | (1) |
|
Copying from the Color Buffer |
|
|
198 | (3) |
|
|
201 | (1) |
|
Texture Coordinate Generation |
|
|
202 | (6) |
|
|
205 | (1) |
|
Example: Reflective Cube Mapping |
|
|
206 | (2) |
|
|
208 | (11) |
|
|
208 | (2) |
|
Specifying Texture Coordinates |
|
|
210 | (1) |
|
Example: Multitextured Terrain |
|
|
210 | (3) |
|
|
213 | (3) |
|
Example: Image Interpolation |
|
|
216 | (3) |
|
|
219 | (2) |
|
Chapter 10 Up Your Performance |
|
|
221 | (28) |
|
|
221 | (5) |
|
|
222 | (1) |
|
Filling a Display List with Commands |
|
|
223 | (1) |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
225 | (1) |
|
Display Lists and Textures |
|
|
226 | (1) |
|
|
226 | (15) |
|
|
228 | (1) |
|
|
228 | (1) |
|
|
229 | (6) |
|
|
235 | (2) |
|
Vertex Arrays and Multitexturing |
|
|
237 | (1) |
|
|
238 | (1) |
|
|
239 | (2) |
|
|
241 | (6) |
|
Determining the View Frustum |
|
|
243 | (1) |
|
|
244 | (1) |
|
|
244 | (1) |
|
|
245 | (2) |
|
|
247 | (2) |
|
Chapter 11 Displaying Text |
|
|
249 | (12) |
|
|
249 | (4) |
|
|
253 | (4) |
|
|
257 | (1) |
|
|
257 | (1) |
|
|
258 | (1) |
|
|
258 | (3) |
|
Chapter 12 OpenGL Buffers |
|
|
261 | (16) |
|
What Is an OpenGL Buffer? |
|
|
261 | (2) |
|
|
262 | (1) |
|
|
262 | (1) |
|
|
263 | (3) |
|
|
263 | (2) |
|
|
265 | (1) |
|
|
265 | (1) |
|
|
266 | (2) |
|
Depth-Comparison Functions |
|
|
266 | (1) |
|
|
267 | (1) |
|
|
268 | (3) |
|
An Example of Stencil Testing |
|
|
270 | (1) |
|
|
271 | (4) |
|
Example: Using the Accumulation Buffer |
|
|
272 | (3) |
|
|
275 | (2) |
|
|
277 | (6) |
|
|
277 | (2) |
|
|
279 | (3) |
|
|
282 | (1) |
PART III APPENDICES |
|
283 | (18) |
|
Appendix A Answers to Review Questions and Exercises |
|
|
285 | (10) |
|
Appendix B Further Reading |
|
|
295 | (4) |
|
|
295 | (2) |
|
|
295 | (1) |
|
|
296 | (1) |
|
|
296 | (1) |
|
|
297 | (1) |
|
|
297 | (2) |
|
|
297 | (1) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
|
298 | (1) |
|
Appendix C What's on the CD |
|
|
299 | (2) |
|
|
299 | (1) |
|
|
299 | (1) |
|
|
300 | (1) |
|
|
300 | (1) |
Index |
|
301 | |