< h4> < b> < i> OpenGL< sup> & #174; < /sup> Programming Guide, Sixth Edition< /i> < /b> < /h4> < p> OpenGL is a powerful software interface used to produce high-quality, computergenerated images and interactive applications using 2D and 3D objects, bitmaps, and color images.< /p> < p> < i> < b> The OpenGL< sup> & #174; < /sup> Programming Guide, Sixth Edition, < /b> < /i> provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.0. This sixth edition of the best-selling "red book" describes the latest features of OpenGL Version 2.1. You will find clear explanations of OpenGL functionality and many basic computer graphics techniques, such as building and rendering 3D models; interactively viewing objects from different perspective points; and using shading, lighting, and texturing effects for greater realism. In addition, this book provides in-depth coverage of advanced techniques, including texture mapping, antialiasing, fog and atmospheric effects, NURBS, image processing, and more. The text also explores other key topics such as enhancing performance, OpenGL extensions, and cross-platform techniques.< /p> < p> This sixth edition has been updated to include the newest features of OpenGL Version 2.1, including: < /p> < ul> < li> Using server-side pixel buffer objects for fast pixel rectangle download and retrieval< /li> < li> Discussion of the sRGB texture format< /li> < li> Expanded discussion of the OpenGL Shading Language< /li> < /ul> < p> This edition continues the discussionof the OpenGL Shading Language (GLSL) and explains the mechanics of using this language to create complex graphics effects and boost the computational power of OpenGL. < /p> < p> The OpenGL Technical Library provides tutorial and reference books for OpenGL. The Library enables programmers to gain a practical understanding of OpenGL and shows them how to unlock its full potential. Originally developed by SGI, the Library continues to evolve under the auspices of the OpenGL Architecture Review Board (ARB) Steering Group (now part of the Khronos Group), an industry consortium responsible for guiding the evolution of OpenGL and related technologies.< /p>
Show more< h4> < b> < i> OpenGL< sup> & #174; < /sup> Programming Guide, Sixth Edition< /i> < /b> < /h4> < p> OpenGL is a powerful software interface used to produce high-quality, computergenerated images and interactive applications using 2D and 3D objects, bitmaps, and color images.< /p> < p> < i> < b> The OpenGL< sup> & #174; < /sup> Programming Guide, Sixth Edition, < /b> < /i> provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.0. This sixth edition of the best-selling "red book" describes the latest features of OpenGL Version 2.1. You will find clear explanations of OpenGL functionality and many basic computer graphics techniques, such as building and rendering 3D models; interactively viewing objects from different perspective points; and using shading, lighting, and texturing effects for greater realism. In addition, this book provides in-depth coverage of advanced techniques, including texture mapping, antialiasing, fog and atmospheric effects, NURBS, image processing, and more. The text also explores other key topics such as enhancing performance, OpenGL extensions, and cross-platform techniques.< /p> < p> This sixth edition has been updated to include the newest features of OpenGL Version 2.1, including: < /p> < ul> < li> Using server-side pixel buffer objects for fast pixel rectangle download and retrieval< /li> < li> Discussion of the sRGB texture format< /li> < li> Expanded discussion of the OpenGL Shading Language< /li> < /ul> < p> This edition continues the discussionof the OpenGL Shading Language (GLSL) and explains the mechanics of using this language to create complex graphics effects and boost the computational power of OpenGL. < /p> < p> The OpenGL Technical Library provides tutorial and reference books for OpenGL. The Library enables programmers to gain a practical understanding of OpenGL and shows them how to unlock its full potential. Originally developed by SGI, the Library continues to evolve under the auspices of the OpenGL Architecture Review Board (ARB) Steering Group (now part of the Khronos Group), an industry consortium responsible for guiding the evolution of OpenGL and related technologies.< /p>
Show moreFigures xxi
Tables xxv
Examples xxix
About This Guide xxxvWhat This
Guide Contains xxxv
What's New in This
Edition xxxviii
What You Should Know Before Reading This
Guide xxxviii
How to Obtain the Sample
Code xxxix
Nate Robins' OpenGL Tutors
xl
Errata xl
Style Conventions
xlAcknowledgments
xliiiChapter 1: Introduction to OpenGL
1What Is
OpenGL? 2
A Smidgen of OpenGL Code 5
OpenGL Command Syntax 7
OpenGL as a State Machine 9
OpenGL Rendering Pipeline
10
OpenGL-Related Libraries 14
Animation 20Chapter 2: State Management and Drawing Geometric
Objects 27A Drawing Survival
Kit 29
Describing Points, Lines, and Polygons
37
Basic State Management 48
Displaying Points, Lines, and
Polygons 50
Normal Vectors 63
Vertex Arrays 65
Buffer Objects 82
Attribute Groups 91
Some Hints for Building Polygonal Models of Surfaces
94Chpater 3: Viewing
103Overview: The Camera Analogy
106
Viewing and Modeling Transformations
117
Projection Transformations
133
Viewport Transformation 138
Troubleshooting Transformations
142
Manipulating the Matrix Stacks
145
Additional Clipping Planesv 149
Examples of Composing Several Transformations
152
Reversing or Mimicking
Transformations 160Chapter 4:
Color 165Color Perception
166
Computer Color 168
RGBA versus Color-Index Mode 170
Specifying a Color and a Shading
Model 176Chapter 5: Lighting
183A Hidden-Surface Removal Survival Kit 185
Real-World and OpenGL Lighting 187
A Simple Example: Rendering a Lit Sphere 190
Creating Light Sources 194
Selecting a Lighting Model 207
Defining Material Properties 211
The Mathematics of Lighting 220
Lighting in Color-Index Mode 226Chapter 6: Blending, Antialiasing,
Fog, and Polygon Offset
229Blending 231
Antialiasing 247
Fogv 261
Point Parameters 271
Polygon Offset v274Chapter 7: Display Lists 277Why Use Display
Lists? 278
An Example of Using a Display List
279
Display List Design Philosophy v282
Creating and Executing a Display List
285
Executing Multiple Display v292
Managing State Variables with Display Lists
297Chapter 8: Drawing Pixels,
Bitmaps, Fonts, and Images
301Bitmaps and Fonts 303
Images 312
Imaging Pipeline 321
Reading and Drawing Pixel Rectangles
337
Using Buffer Objects with Pixel Rectangle Data
341
Tips for Improving Pixel Drawing
Rates 345
Imaging Subsetv 346Chapter 9: Texture
Mapping 369An Overview and an
Example 375
Specifying the Texture 380
Filtering 411
Texture Objects 414
Texture Functions 421
Assigning Texture Coordinates
425
Automatic Texture-Coordinate Generation
434
Multitexturing 443
Texture Combiner Functions
449
Applying Secondary Color after Texturing
455
Sprites 456
The Texture Matrix Stack
457
Depth Textures 459Chapter 10:
The Framebuffer 465Buffers and
Their Uses 468
Testing and Operating on Fragments
475
The Accumulation Bufferv 490Chapter 11: Tessellators and
Quadrics 505Polygon
Tessellation 506
Quadrics: Rendering Spheres, Cylinders, and
Disks 523Chapter 12: Evaluators
and NURBS 533Prerequisites
535
Evaluatorsv 536
The GLU NURBS Interface
550Chapter 13: Selection and Feedback
569Selection
570Feedbackv 591Chapter 14: Now That You Knowv 599Error Handling
601
Which Version Am I Using?
603
Extensions to the Standard
605
Cheesy Translucency 608
An Easy Fade Effect 608
Object Selection Using the Back
Buffer 610
Cheap Image Transformation
611
Displaying Layers 612
Antialiased Characters 613
Drawing Round Points 616
Interpolating Images 616
Making Decals 616
Drawing Filled, Concave Polygons Using the Stencil
Buffer 618
Finding Interference Regions
619
Shadows 621
Hidden-Line Removal 622
Texture Mapping Applications
624
Drawing Depth-Buffered Images
625
Dirichlet Domains 625
Life in the Stencil Buffer
627
Alternative Uses for glDrawPixels() and
glCopyPixels() 628Chapter 15:
The OpenGL Shading Language
631The OpenGL Graphics Pipeline
and Programmable Shading
632
Using GLSL Shaders 636
The OpenGL Shading Language
644
Creating Shaders with GLSL
645
Accessing Texture Maps in
Shaders 661
Shader Preprocessor 664Appendix
A: Order of Operations
679Overview
680
Geometric Operations 681
Pixel Operations 682
Fragment Operations 683Odds and
Ends 684Appendix B: State
Variables 685The Query Commands
686
OpenGL State Variables 688
Appendix C: OpenGL and Window
Systems 735Accessing New OpenGL
Functions 736
GLX: OpenGL Extension for the X Window System
737
AGL: OpenGL Extensions for the Apple Macintosh
744
PGL: OpenGL Extension for IBM OS/2 Warp
749
WGL: OpenGL Extension for Microsoft Windows
95/98/NT/ME/2000/XP 753Appendix
D: Basics of GLUT: The OpenGL Utility Toolkit
759Initializing and Creating a
Window 760
Handling Window and Input Events
761
Loading the Color Map 763
Initializing and Drawing Three-Dimensional Objects
763
Managing a Background Process
765
Running the Program 765Appendix
E: Calculating Normal Vectors
767Finding Normals for Analytic
Surfaces 769
Finding Normals from Polygonal Data
771Appendix F: Homogeneous
Coordinates and Transformation Matrices
773Homogeneous
Coordinates 774
Transformation Matrices
775Appendix G: Programming Tips
779OpenGL Correctness
Tips 780
OpenGL Performance Tips 782
GLX Tips 784Appendix H: OpenGL Invariance
785Appendix I: Built-In OpenGL
Shading Language Variables and Functions
789Variables
790
Built-In Functions 802Glossary
815
Index 837
OpenGL is a powerful software interface used to produce high-quality computer graphics. The OpenGL Programming Guide provides definitve and comprehensive information on OpenGL and the OpenGL Utility Library. It is far and away the most important book on OpenGL, and is commonly referred to by programmers simply as "the red book." The Sixth edition of The OpenGL Programming Guide discusses the latest additions to the OpenGL programming interface. At version 2.1, OpenGL added a number of new features including support for sRGB texture formats (pre-multiplied alpha colors), Pixel Buffer Objects (PBOs) for accelerating the transfer of pixel data for specifying textures and drawing blocks of pixels, and support for the specification of non-square matrices into the OpenGL Shading Language. In addition, updated materials discussing the latest changes to the OpenGL Shading Language (version 1.20) are discussed. This book remains the necessary guide for any developer doing graphics programming.
Dave Shreiner, a computer graphics specialist at ARM, Inc., was a longtime member of the core OpenGL team at SGI. He authored the first commercial OpenGL training course, and has been developing computer graphics applications for more than two decades. Dave regularly presents at SIGGRAPH and other conferences worldwide, and is coauthor of the OpenGL® Reference Manual (Addison-Wesley).
![]() |
Ask a Question About this Product More... |
![]() |