OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1

Paperback
from $0.00

Author: Dave Shreiner

ISBN-10: 0321552628

ISBN-13: 9780321552624

Category: Computer Graphics - General & Miscellaneous

OpenGL is a powerful software interface udes to produce high-quality, computer-generated images and interactive applications using 2D and 3D objects, bitmaps, color images.\ The OpenGL Programming Guide, Seventh Edition, provides definitive and comprehensive information on OpenGL Utility Library. The previous edition covered OpenGL through Version 2.1. This seventh edition of the best-selling "red-book" describes the latest features of OpenGL Versions of 3.0 and 3.1. You will find clear...

Search in google:

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.The OpenGL®Programming Guide, Seventh Edition, provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.1. This seventh edition of the best-selling “red book” describes the latest features of OpenGL Versions 3.0 and 3.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.This seventh edition has been updated to include the newest features of OpenGL Versions 3.0 and 3.1, including Using framebuffer objects for off-screen rendering and texture updates Examples of the various new buffer object types, including uniform-buffer objects, transform feedback buffers, and vertex array objects Using texture arrays to increase performance when using numerous textures Efficient rendering using primitive restart and conditional rendering Discussion of OpenGL’s deprecation mechanism and how to verify your programs for future versions of OpenGLThis edition continues the discussion of 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. 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 Khronos OpenGL ARB Working Group, an industry consortium responsible for guiding the evolution of OpenGL and related technologies.

Figures xxiTables xxvExamples xxixAbout This Guide xxxvAcknowledgments xlvChapter 1: Introduction to OpenGL 1What Is OpenGL? 2A Smidgen of OpenGL Code 5OpenGL Command Syntax 7OpenGL as a State Machine 9OpenGL Rendering Pipeline 10OpenGL-Related Libraries 14Animation 22OpenGL and Its Deprecation Mechanism 27Chapter 2: State Management and Drawing Geometric Objects 31A Drawing Survival Kit 34Describing Points, Lines, and Polygons 42Basic State Management 53Displaying Points, Lines, and Polygons 55Normal Vectors 68Vertex Arrays 70Buffer Objects 91Vertex-Array Objects 104Attribute Groups 110Some Hints for Building Polygonal Models of Surfaces 113Chapter 3: Viewing 123Overview: The Camera Analogy 126Viewing and Modeling Transformations 137Projection Transformations 152Viewport Transformation 158Troubleshooting Transformations 162Manipulating the Matrix Stacks 164Additional Clipping Planes 168Examples of Composing Several Transformations 172Reversing or Mimicking Transformations 179Chapter 4: Color 185Color Perception 186Computer Color 188RGBA versus Color-Index Mode 190Specifying a Color and a Shading Model 196Chapter 5: Lighting 203A Hidden-Surface Removal Survival Kit 205Real-World and OpenGL Lighting 207A Simple Example: Rendering a Lit Sphere 210Creating Light Sources 214Selecting a Lighting Model 227Defining Material Properties 231The Mathematics of Lighting 240Lighting in Color-Index Mode 246Chapter 6: Blending, Antialiasing, Fog, and Polygon Offset 249Blending 251Antialiasing 267Fog 280Point Parameters 291Polygon Offset 293Chapter 7: Display Lists 297Why Use Display Lists? 298An Example of Using a Display List 299Display List Design Philosophy 302Creating and Executing a Display List 305Executing Multiple Display Lists 312Managing State Variables with Display Lists 318Chapter 8: Drawing Pixels, Bitmaps, Fonts, and Images 321Bitmaps and Fonts 323Images 333Imaging Pipeline 343Reading and Drawing Pixel Rectangles 359Using Buffer Objects with Pixel Rectangle Data 362Tips for Improving Pixel Drawing Rates 366Imaging Subset 367Chapter 9: Texture Mapping 389An Overview and an Example 395Specifying the Texture 400Filtering 434Texture Objects 437Texture Functions 444Assigning Texture Coordinates 448Automatic Texture-Coordinate Generation 457Multitexturing 467Texture Combiner Functions 472Applying Secondary Color after Texturing 478Point Sprites 479The Texture Matrix Stack 481Depth Textures 483Chapter 10: The Framebuffer 489Buffers and Their Uses 492Testing and Operating on Fragments 501The Accumulation Buffer 518Framebuffer Objects 526Chapter 11: Tessellators and Quadrics 541Polygon Tessellation 542Quadrics: Rendering Spheres, Cylinders, and Disks 559Chapter 12: Evaluators and NURBS 569Prerequisites 571Evaluators 572The GLU NURBS Interface 586Chapter 13: Selection and Feedback 605Selection 606Feedback 627Chapter 14: Now That You Know 635Error Handling 637Which Version Am I Using? 639Extensions to the Standard 641Cheesy Translucency 644An Easy Fade Effect 645Object Selection Using the Back Buffer 646Cheap Image Transformation 647Displaying Layers 649Antialiased Characters 650Drawing Round Points 653Interpolating Images 653Making Decals 653Drawing Filled, Concave Polygons Using the Stencil Buffer 655Finding Interference Regions 656Shadows 658Hidden-Line Removal 659Texture Mapping Applications 661Drawing Depth-Buffered Images 662Dirichlet Domains 662Life in the Stencil Buffer 664Alternative Uses for glDrawPixels() and glCopyPixels() 665Chapter 15: The OpenGL Shading Language 667The OpenGL Graphics Pipeline and Programmable Shading 668Using GLSL Shaders 672The OpenGL Shading Language 681Creating Shaders with GLSL 681Uniform Blocks 692Accessing Texture Maps in Shaders 707Shader Preprocessor 711Extension Processing in Shaders 714Vertex Shader Specifics 715Transform Feedback 722Fragment Shader Specifics 727Appendix A: Basics of GLUT: The OpenGL Utility Toolkit 731Initializing and Creating a Window 732Handling Window and Input Events 733Loading the Color Map 735Initializing and Drawing Three-Dimensional Objects 735Managing a Background Process 736Running the Program 737Appendix B: State Variables 739The Query Commands 740OpenGL State Variables 743Appendix C: Homogeneous Coordinates and Transformation Matrices 803Homogeneous Coordinates 804Transformation Matrices 805Appendix D: OpenGL and Window Systems 809Accessing New OpenGL Functions 810GLX: OpenGL Extension for the X Window System 812AGL: OpenGL Extensions for the Apple Macintosh 819WGL: OpenGL Extension for Microsoft Windows 95/98/NT/ME/2000/XP 824Glossary 831Index 857The following appendices are available online at http://www.opengl-redbook.com/appendices/.Appendix E: Order of OperationsAppendix F: Programming TipsAppendix G: OpenGL InvarianceAppendix H: Calculating Normal VectorsAppendix I: Built-In OpenGL Shading Language Variables and FunctionsAppendix J: Floating-Point Formats for Textures, Framebuffers, and RenderbuffersAppendix K: RGTC Compressed Texture FormatAppendix L: std140 Uniform Buffer Layout