OpenGL® programming guide, the official guide to learning OpenGL®, Version 2 (5th Ed.)

Authors:

Language: Anglais
Cover of the book OpenGL® programming guide, the official guide to learning OpenGL®, Version 2

Subjects for OpenGL® programming guide, the official guide to...

Publication date:
838 p. · 18x23 cm · Paperback
Replaced by new edition
OpenGL is a powerful software interface used to produce high-quality, computer-generated images and interactive applications using 2D and 3D objects, bitmaps, and color images. This fifth edition provides comprehensive information on OpenGL and the OpenGL Utility Library. It also discusses the OpenGL Shading Language (GLSL).
Figures xxiTables xxvExamples xxixAbout This Guide xxxvAcknowledgments xliii1. Introduction to OpenGL 1 What 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 20 2. State Management and Drawing Geometric Objects 27 A 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 Vertex Arrays in Buffer Objects 82 Attribute Groups 90 Some Hints for Building Polygonal Models of Surfaces 93 3. Viewing 103 Overview: 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 Planes 149 Examples of Composing Several Transformations 152 Reversing or Mimicking Transformations 160 4. Color 165 Color Perception 166 Computer Color 168 RGBA versus Color-Index Mode 170 Specifying a Color and a Shading Model 176 5. Lighting 183 A 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 226 6. Blending, Antialiasing, Fog, and Polygon Offset 229 Blending 231 Antialiasing 247 Fog 261 Point Parameters 271 Polygon Offset 274 7. Display Lists 277 Why Use Display Lists? 278 An Example of Using a Display List 279 Display List Design Philosophy 282 Creating and Executing a Display List 285 Executing Multiple Display Lists 292 Managing State Variables with Display Lists 297 8. Drawing Pixels, Bitmaps, Fonts, and Images 301 Bitmaps and Fonts 303 Images 312 Reading and Drawing Pixel Rectangles 337 Tips for Improving Pixel Drawing Rates 341 Imaging Subset 342 9. Texture Mapping 365 An Overview and an Example 371 Specifying the Texture 375 Filtering 406 Texture Objects 409 Texture Functions 416 Assigning Texture Coordinates 420 Automatic Texture-Coordinate Generation 429 Multitexturing 438 Texture Combiner Functions 444 Applying Secondary Color after Texturing 450 The Texture Matrix Stack 451 Depth Textures 452 10. The Framebuffer 457 Buffers and Their Uses 460 Testing and Operating on Fragments 467 The Accumulation Buffer 482 11. Tessellators and Quadrics 497 Polygon Tessellation 498 Quadrics: Rendering Spheres, Cylinders, and Disks 515 12. Evaluators and NURBS 525 Prerequisites 527 Evaluators 528 The GLU NURBS Interface 542 13. Selection and Feedback 561 Selection 562 Feedback 583 14. Now That You Know 591 Error Handling 593 Which Version Am I Using? 595 Extensions to the Standard 597 Cheesy Translucency 600 An Easy Fade Effect 600 Object Selection Using the Back Buffer 602 Cheap Image Transformation 603 Displaying Layers 604 Antialiased Characters 605 Drawing Round Points 608 Interpolating Images 608 Making Decals 608 Drawing Filled, Concave Polygons Using the Stencil Buffer 610 Finding Interference Regions 611 Shadows 613 Hidden-Line Removal 614 Texture Mapping Applications 616 Drawing Depth-Buffered Images 617 Dirichlet Domains 617 Life in the Stencil Buffer 619 Alternative Uses for glDrawPixels() and glCopyPixels() 620 15. OpenGL 20 and the OpenGL Shading Language 623 Why OpenGL 20? 624 Point Sprites 624 The OpenGL Graphics Pipeline and Programmable Shading 626 Using GLSL Shaders 630 The OpenGL Shading Language 638 Creating Shaders with GLSL 639 Accessing Texture Maps in Shaders 653 A. Order of Operations 665 Overview 666 Geometric Operations 667 Pixel Operations 668 Fragment Operations 669 Odds and Ends 670 B. State Variables 671 The Query Commands 672 OpenGL State Variables 674 C. OpenGL and Window Systems 713 Accessing New OpenGL Functions 714 GLX: OpenGL Extension for the X Window System 715 AGL: OpenGL Extensions for the Apple Macintosh 722 PGL: OpenGL Extension for IBM OS/2 Warp 727 WGL: OpenGL Extension for Microsoft Windows 95/98/NT/ME/2000/XP 731 D. Basics of GLUT: The OpenGL Utility Toolkit 737 Initializing and Creating a Window 738 Handling Window and Input Events 739 Loading the Color Map 741 Initializing and Drawing Three-Dimensional Objects 741 Managing a Background Process 743 Running the Program 743 E. Calculating Normal Vectors 745 Finding Normals for Analytic Surfaces 747 Finding Normals from Polygonal Data 749 F. Homogeneous Coordinates and Transformation Matrices 751 Homogeneous Coordinates 752 Transformation Matrices 753 G. Programming Tips 757 OpenGL Correctness Tips 758 OpenGL Performance Tips 760 GLX Tips 762 H. OpenGL Invariance 763I. Built-In OpenGL Shading Language Variables and Functions 767 Variables 768 Built-In Functions 780 Glossary 791Index 813