This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.
PDF The popular standard, used most often with the free Adobe® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
OpenGL® SuperBible, Seventh Edition, is the definitive programmer’s guide, tutorial, and reference for OpenGL 4.5, the world’s leading 3D API for real-time computer graphics. The best introduction for any developer, it clearly explains OpenGL’s newest APIs; key extensions; shaders; and essential, related concepts. You’ll find up-to-date, hands-on guidance for all facets of modern OpenGL development—both desktop and mobile.
The authors explain what OpenGL does, how it connects to the graphics pipeline, and how it manages huge datasets to deliver compelling experiences. Step by step, they present increasingly sophisticated techniques, illuminating key concepts with worked examples. They introduce OpenGL on several popular platforms, and offer up-to-date best practices and performance advice.
This revised and updated edition introduces many new OpenGL 4.5 features, including important ARB and KHR extensions that are now part of the standard. It thoroughly covers the latest Approaching Zero Driver Overhead (AZDO) performance features, and demonstrates key enhancements with new example applications.
Bonus material and sample code are available at openglsuperbible.com.
About the Author xli
Part I: Foundations 1
Chapter 1: Introduction 3
OpenGL and the Graphics Pipeline 4
The Origins and Evolution of OpenGL 6
Primitives, Pipelines, and Pixels 10
Chapter 2: Our First OpenGL Program 13
Creating a Simple Application 14
Using Shaders 17
Drawing Our First Triangle 24
Chapter 3: Following the Pipeline 27
Passing Data to the Vertex Shader 28
Passing Data from Stage to Stage 30
Geometry Shaders 37
Primitive Assembly, Clipping, and Rasterization 39
Fragment Shaders 43
Framebuffer Operations 47
Compute Shaders 48
Using Extensions in OpenGL 49
Chapter 4: Math for 3D Graphics 55
Is This the Dreaded Math Chapter 56
A Crash Course in 3D Graphics Math 57
Understanding Transformations 69
Interpolation, Lines, Curves, and Splines 89
Chapter 5: Data 99
Shader Storage Blocks 140
Atomic Counters 147
Chapter 6: Shaders and Programs 205
Language Overview 206
Compiling, Linking, and Examining Programs 219
Part II: In Depth 239
Chapter 7: Vertex Processing and Drawing Commands 241
Vertex Processing 242
Drawing Commands 249
Storing Transformed Vertices 278
Chapter 8: Primitive Processing 305
Geometry Shaders 333
Chapter 9: Fragment Processing and the Framebuffer 365
Fragment Shaders 366
Per-Fragment Tests 369
Color Output 382
Off-Screen Rendering 390
Advanced Framebuffer Formats 428
Point Sprites 448
Getting at Your Image 458
Chapter 10: Compute Shaders 467
Using Compute Shaders 468
Chapter 11: Advanced Data Management 503
Eliminating Binding 504
Sparsely Populated Textures 509
Texture Compression 516
Packed Data Formats 525
High-Quality Texture Filtering 527
Chapter 12: Controlling and Monitoring the Pipeline 533
Synchronization in OpenGL 556
Part III: In Practice 565
Chapter 13: Rendering Techniques 567
Lighting Models 568
Non-Photo-Realistic Rendering 610
Alternative Rendering Methods 613
Two-Dimensional Graphics 647
Chapter 14: High-Performance OpenGL 661
Optimizing CPU Performance 661
Low-Overhead OpenGL 677
Performance Analysis Tools 699
Chapter 15: Debugging and Stability 729
Debugging Your Applications 730
Security and Robustness 737
Appendix A: Further Reading 743
Appendix B: The SBM File Format 749
Appendix C: The SuperBible Tools 759