OpenGL Programming Guide
Addison-Wesley Educational Publishers Inc (Verlag)
978-0-321-77303-6 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
Today’s OpenGL software interface enables programmers to produce extraordinarily high-quality computer-generated images and interactive applications using 2D and 3D objects, color images, and programmable shaders.
OpenGL® Programming Guide: The Official Guide to Learning OpenGL®, Version 4.3, Eighth Edition, has been almost completely rewritten and provides definitive, comprehensive information on OpenGL and the OpenGL Shading Language. This edition of the best-selling “Red Book” describes the features through OpenGL version 4.3. It also includes updated information and techniques formerly covered in OpenGL® Shading Language (the “Orange Book”).
For the first time, this guide completely integrates shader techniques, alongside classic, functioncentric techniques. Extensive new text and code are presented, demonstrating the latest in OpenGL programming techniques.
OpenGL® Programming Guide, Eighth Edition, provides clear explanations of OpenGL functionality and techniques, including processing geometric objects with vertex, tessellation, and geometry shaders using geometric transformations and viewing matrices; working with pixels and texture maps through fragment shaders; and advanced data techniques using framebuffer objects and compute shaders.
New OpenGL features covered in this edition include
Best practices and sample code for taking full advantage of shaders and the entire shading pipeline (including geometry and tessellation shaders)
Integration of general computation into the rendering pipeline via compute shaders
Techniques for binding multiple shader programs at once during application execution
Latest GLSL features for doing advanced shading techniques
Additional new techniques for optimizing graphics program performance
Dave Shreiner, Director of Graphics and GPU Computing at ARM, Inc., has been active in OpenGL development nearly since its inception. He created the first commercial OpenGL training course and has taught OpenGL programming for twenty years. Graham Sellers, coauthor of OpenGL® SuperBible, manages OpenGL Software Development at AMD. He authored many OpenGL feature specifications and helped bring OpenGL ES to desktop computers. John Kessenich, OpenGL Shading Language Specification Editor, consults at LunarG, Inc., building compiler technology for GLSL. He helped develop OpenGL 2.0 and OpenGL ES 2.0 at 3Dlabs and Intel. Bill Licea-Kane is Principal Member of Technical Staff at AMD, coauthor of OpenGL® Shading Language Guide, and chairs the OpenGL Shading Language technical subgroup.
Figures xxiii
Tables xxix
Examples xxxiii
About This Guide xli
Chapter 1: Introduction to OpenGL 1
What Is OpenGL? 2 Your First Look at an OpenGL Program 3
OpenGL Syntax 8
OpenGL’s Rendering Pipeline 10
Our First Program: A Detailed Discussion 14
Chapter 2: Shader Fundamentals 33
Shaders and OpenGL 34
OpenGL’s Programmable Pipeline 35
An Overview of the OpenGL Shading Language 37
Interface Blocks 60
Compiling Shaders 70
Shader Subroutines 76
Separate Shader Objects 81
Chapter 3: Drawing with OpenGL 85
OpenGL Graphics Primitives 86 Data in OpenGL Buffers 92
Vertex Specification 108
OpenGL Drawing Commands 115
Instanced Rendering 128
Chapter 4: Color, Pixels, and Framebuffers 141
Basic Color Theory 142
Buffers and Their Uses 144
Color and OpenGL 148
Multisampling 153
Testing and Operating on Fragments 156
Per-Primitive Antialiasing 178
Framebuffer Objects 180
Writing to Multiple Renderbuffers Simultaneously 193
Reading and Copying Pixel Data 200
Copying Pixel Rectangles 203
Chapter 5: Viewing Transformations, Clipping, and Feedback 205
Viewing 206 User Transformations 212
OpenGL Transformations 236
Transform Feedback 239
Chapter 6: Textures 259
Texture Mapping 261
Basic Texture Types 262
Creating and Initializing Textures 263
Proxy Textures 276
Specifying Texture Data 277
Sampler Objects 292
Using Textures 295
Complex Texture Types 306
Texture Views 321
Compressed Textures 326
Filtering 329
Advanced Texture Lookup Functions 340
Point Sprites 346
Rendering to Texture Maps 351
Chapter Summary 356
Chapter 7: Light and Shadow 359
Lighting Introduction 360 Classic Lighting Model 361
Advanced Lighting Models 384
Shadow Mapping 400
Chapter 8: Procedural Texturing 411
Procedural Texturing 412
Bump Mapping 433
Antialiasing Procedural Textures 442
Noise 460
Further Information 483
Chapter 9: Tessellation Shaders 485
Tessellation Shaders 486 Tessellation Patches 487
Tessellation Control Shaders 488
Tessellation Evaluation Shaders 496
A Tessellation Example: The Teapot 500
Additional Tessellation Techniques 504
Chapter 10: Geometry Shaders 509
Creating a Geometry Shader 510
Geometry Shader Inputs and Outputs 514
Producing Primitives 525
Advanced Transform Feedback 532
Geometry Shader Instancing 549
Multiple Viewports and Layered Rendering 550
Chapter Summary 559
Chapter 11: Memory 563
Using Textures for Generic Data Storage 564 Shader Storage Buffer Objects 576
Atomic Operations and Synchronization 578
Example 609
Chapter 12: Compute Shaders 623
Overview 624
Workgroups and Dispatch 625
Communication and Synchronization 632
Examples 636
Chapter Summary 647
Appendix A: Basics of GLUT: The OpenGL Utility Toolkit 651
Initializing and Creating a Window 652 Accessing Functions 654
Handling Window and Input Events 655
Managing a Background Process 658
Running the Program 658
Appendix B: OpenGL ES and WebGL 659
OpenGL ES 660
WebGL 662
Appendix C: Built-in GLSL Variables and Functions 673
Built-in Variables 674 Built-in Constants 684
Built-in Functions 686
Appendix D: State Variables 737
The Query Commands 738
OpenGL State Variables 745
Appendix E: Homogeneous Coordinates and Transformation Matrices 829
Homogeneous Coordinates 830 Transformation Matrices 831
Appendix F: OpenGL and Window Systems 835
Accessing New OpenGL Functions 836
GLX: OpenGL Extension for the X Window System 838
WGL: OpenGL Extensions for Microsoft Windows 845
OpenGL in MacOSX: The Core OpenGL (CGL) API and the NSOpenGL Mac OS X’s Core OpenGL Library . 851
The NSOpenGL Classes 854
Appendix G: Floating-Point Formats for Textures, Framebuffers, and Renderbuffers 857
Reduced-Precision Floating-Point Values 858 16-bit Floating-Point Values 858
10- and 11-bit Unsigned Floating-Point Values 860
Appendix H: Debugging and Profiling OpenGL 865
Creating a Debug Context 866
Debug Output 868
Debug Groups 875
Profiling 879
Appendix I: Buffer Object Layouts 885
Using Standard Layout Qualifiers 886 The std140 Layout Rules. 886
The std430 Layout Rules 887
Glossary 889
Index 919
Erscheint lt. Verlag | 4.4.2013 |
---|---|
Verlagsort | New Jersey |
Sprache | englisch |
Maße | 179 x 231 mm |
Gewicht | 1492 g |
Themenwelt | Informatik ► Grafik / Design ► Film- / Video-Bearbeitung |
ISBN-10 | 0-321-77303-9 / 0321773039 |
ISBN-13 | 978-0-321-77303-6 / 9780321773036 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich