Published by Addison-Wesley Professional (July 20, 2015) © 2016

Graham Sellers | Richard Wright | Nicholas Haemel
    VitalSource eTextbook (Lifetime access)
    €27,99
    Adding to cart… The item has been added
    ISBN-13: 9780134193113

    OpenGL Superbible: Comprehensive Tutorial and Reference ,7th edition

    Language: English

    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.

     

    Coverage includes

    • A practical introduction to real-time 3D graphics, including foundational math
    • Core techniques for rendering, transformations, and texturing
    • Shaders and the OpenGL Shading Language (GLSL) in depth
    • Vertex processing, drawing commands, primitives, fragments, and framebuffers
    • Compute shaders: harnessing graphics cards for more than graphics
    • Pipeline monitoring and control
    • Managing, loading, and arbitrating access to data
    • Building larger applications and deploying them across platforms
    • Advanced rendering: light simulation, artistic and non-photorealistic effects, and more
    • Reducing CPU overhead and analyzing GPU behavior
    • Supercharging performance with persistent maps, bindless textures, and fine-grained synchronization
    • Preventing and debugging errors
    • New applications: texture compression, text drawing, font rendering with distance fields, high-quality texture filtering, and OpenMP 

    Bonus material and sample code are available at openglsuperbible.com.

    Figures xv

    Tables xxi

    Listings xxiii

    Foreword xxxi

    Preface xxxiii

    Acknowledgments xxxix

    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

    Summary 11

     

    Chapter 2: Our First OpenGL Program 13

    Creating a Simple Application 14

    Using Shaders 17

    Drawing Our First Triangle 24

    Summary 26

     

    Chapter 3: Following the Pipeline 27

    Passing Data to the Vertex Shader 28

    Passing Data from Stage to Stage 30

    Tessellation 33

    Geometry Shaders 37

    Primitive Assembly, Clipping, and Rasterization 39

    Fragment Shaders 43

    Framebuffer Operations 47

    Compute Shaders 48

    Using Extensions in OpenGL 49

    Summary 54

     

    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

    Summary 97

     

    Chapter 5: Data 99

    Buffers 100

    Uniforms 117

    Shader Storage Blocks 140

    Atomic Counters 147

    Textures 152

    Summary 203

     

    Chapter 6: Shaders and Programs 205

    Language Overview 206

    Compiling, Linking, and Examining Programs 219

    Summary 238

     

    Part II: In Depth 239

     

    Chapter 7: Vertex Processing and Drawing Commands 241

    Vertex Processing 242

    Drawing Commands 249

    Storing Transformed Vertices 278

    Clipping 296

    Summary 303

     

    Chapter 8: Primitive Processing 305

    Tessellation 306

    Geometry Shaders 333

    Summary 364

     

    Chapter 9: Fragment Processing and the Framebuffer 365

    Fragment Shaders 366

    Per-Fragment Tests 369

    Color Output 382

    Off-Screen Rendering 390

    Antialiasing 412

    Advanced Framebuffer Formats 428

    Point Sprites 448

    Getting at Your Image 458

    Summary 466

     

    Chapter 10: Compute Shaders 467

    Using Compute Shaders 468

    Examples 479

    Summary 502

     

    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

    Summary 531

     

    Chapter 12: Controlling and Monitoring the Pipeline 533

    Queries 534

    Synchronization in OpenGL 556

    Summary 562

     

    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

    Summary 659

     

    Chapter 14: High-Performance OpenGL 661

    Optimizing CPU Performance 661

    Low-Overhead OpenGL 677

    Performance Analysis Tools 699

    Summary 726

     

    Chapter 15: Debugging and Stability 729

    Debugging Your Applications 730

    Security and Robustness 737

    Summary 742

     

    Appendix A: Further Reading 743

     

    Appendix B: The SBM File Format 749

     

    Appendix C: The SuperBible Tools 759

     

    Glossary 797

    Index 805