OpenGL(R) Distilled

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

OpenGL is a package that allows a programmer to create very high-quality 3D graphics. It allows you to do a great many things, so like most such packages; the typical user uses only a small percentage of the overall capability. The goal of Martz in writing this book is to present and explain that key core of operations. In that sense he is very successful, although the reader has to be fairly knowledgeable in the terminology and mechanics of graphics programming. Knowledge of matrices and the basic operations performed on them is also essential. The chapter headings of coverage are: *) Drawing primitives *) Transformation and viewing *) Lighting *) Pixel rectangles *) Texture mapping *) Extensions and versions *) Platform-specific interfaces If you know the terminology and fundamental mechanics of graphics programming, then you will find this book is an excellent introduction to the fundamental functions of OpenGL. Martz lists the prototypes of the functions as well as short descriptions of what they return and what can go wrong. The code examples are written in C++ and can be easily understood by anyone familiar with the language.

Author(s): Paul Martz
Edition: 1
Publisher: Addison-Wesley Professional
Year: 2006

Language: English
Pages: 394

What is the OpenGL Graphics System?......Page 15
Implementor's View of OpenGL......Page 16
Companion Documents......Page 17
OpenGL Fundamentals......Page 18
GL State......Page 20
GL Command Syntax......Page 21
Basic GL Operation......Page 24
GL Errors......Page 25
Begin/End Paradigm......Page 26
Begin and End......Page 29
GL Commands within Begin/End......Page 33
Vertex Specification......Page 34
Vertex Arrays......Page 37
Buffer Objects......Page 47
Vertex Arrays in Buffer Objects......Page 52
Buffer Object State......Page 53
Coordinate Transformations......Page 54
Controlling the Viewport......Page 56
Matrices......Page 57
Normal Transformation......Page 62
Generating Texture Coordinates......Page 64
Clipping......Page 66
Current Raster Position......Page 68
Colors and Coloring......Page 71
Lighting......Page 73
Lighting Parameter Specification......Page 78
ColorMaterial......Page 80
Color Index Lighting......Page 82
Flatshading......Page 83
Color and Associated Data Clipping......Page 84
Vertex Shaders......Page 85
Shader Objects......Page 86
Program Objects......Page 87
Shader Variables......Page 89
Shader Execution......Page 98
Required State......Page 102
Rasterization......Page 104
Antialiasing......Page 106
Multisampling......Page 107
Points......Page 109
Basic Point Rasterization......Page 111
Line Segments......Page 115
Basic Line Segment Rasterization......Page 116
Other Line Segment Features......Page 118
Line Multisample Rasterization......Page 121
Basic Polygon Rasterization......Page 122
Stippling......Page 124
Options Controlling Polygon Rasterization......Page 125
Depth Offset......Page 126
Polygon Rasterization State......Page 127
Pixel Storage Modes and Pixel Buffer Objects......Page 128
The Imaging Subset......Page 129
Pixel Transfer Modes......Page 130
Rasterization of Pixel Rectangles......Page 141
Pixel Transfer Operations......Page 152
Bitmaps......Page 162
Texturing......Page 164
Texture Image Specification......Page 165
Alternate Texture Image Specification Commands......Page 173
Compressed Texture Images......Page 179
Texture Parameters......Page 182
Cube Map Texture Selection......Page 184
Texture Wrap Modes......Page 185
Texture Minification......Page 186
Texture Magnification......Page 192
Texture Completeness......Page 193
Texture State and Proxy State......Page 194
Texture Objects......Page 196
Texture Environments and Texture Functions......Page 198
Texture Comparison Modes......Page 201
Texture Application......Page 205
Fog......Page 208
Shader Variables......Page 210
Shader Execution......Page 211
Multisample Point Fade......Page 214
Per-Fragment Operations and the Framebuffer......Page 215
Pixel Ownership Test......Page 216
Multisample Fragment Operations......Page 217
Alpha Test......Page 218
Stencil Test......Page 219
Depth Buffer Test......Page 220
Occlusion Queries......Page 221
Blending......Page 222
Dithering......Page 226
Additional Multisample Fragment Operations......Page 227
Selecting a Buffer for Writing......Page 229
Fine Control of Buffer Updates......Page 231
Clearing the Buffers......Page 232
The Accumulation Buffer......Page 234
Writing to the Stencil Buffer......Page 235
Reading Pixels......Page 236
Copying Pixels......Page 240
Pixel Draw/Read State......Page 243
Evaluators......Page 244
Selection......Page 250
Feedback......Page 252
Display Lists......Page 254
Hints......Page 259
Simple Queries......Page 261
Data Conversions......Page 262
Enumerated Queries......Page 263
Texture Queries......Page 265
Stipple Query......Page 267
Color Table Query......Page 268
Histogram Query......Page 269
Minmax Query......Page 270
Pointer and String Queries......Page 271
Occlusion Queries......Page 272
Buffer Object Queries......Page 273
Shader and Program Queries......Page 274
Saving and Restoring State......Page 278
State Tables......Page 280
Repeatability......Page 318
Invariance Rules......Page 319
What All This Means......Page 321
Corollaries......Page 322
Vertex Array......Page 325
Texture Replace Environment......Page 326
Other Changes......Page 327
Acknowledgements......Page 328
BGRA Pixel Formats......Page 330
Texture Coordinate Edge Clamping......Page 331
Color Tables......Page 332
Color Matrix......Page 333
Acknowledgements......Page 334
Version 1.2.1......Page 338
Cube Map Textures......Page 339
Multitexture......Page 340
Texture Border Clamp......Page 341
Acknowledgements......Page 342
Blend Squaring......Page 347
Multiple Draw Arrays......Page 348
Texture Crossbar Environment Mode......Page 349
Acknowledgements......Page 350
Buffer Objects......Page 353
Acknowledgements......Page 354
Shader Programs......Page 359
Non-Power-Of-Two Textures......Page 360
Other Changes......Page 361
Acknowledgements......Page 363
Pixel Buffer Objects......Page 365
Other Changes......Page 366
Acknowledgements......Page 368
Naming Conventions......Page 370
Multisample......Page 371
Vertex Blend......Page 372
Shadow......Page 373
Buffer Objects......Page 374
Non-Power-Of-Two Textures......Page 375
Floating-Point Color Buffers......Page 376
Pixel Buffer Objects......Page 377