HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
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.
PDF The popular standard, used most often with the free Acrobat® 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, Sixth Edition, is the definitive programmer’s guide, tutorial, and reference for the world’s leading 3D API for real-time computer graphics, OpenGL 4.3. The best all-around introduction to OpenGL for developers at all levels of experience, it clearly explains both the newest API and indispensable related concepts. You’ll find up-to-date, hands-on guidance for all facets of modern OpenGL development on both desktop and mobile platforms, including transformations, texture mapping, shaders, buffers, geometry management, and much more.
Extensively revised, this edition presents many new OpenGL 4.3 features, including compute shaders, texture views, indirect draws, and enhanced API debugging. It has been reorganized to focus more tightly on the API, to cover the entire pipeline earlier, and to help you thoroughly understand the interactions between OpenGL and graphics hardware.
Coverage includes
Bonus material and sample code are available from the companion Web site, openglsuperbible.com.
Please visit the author's site associated with OpenGL SuperBible: Comprehensive Tutorial and Reference at openglsuperbible.com.
Primitive Processing in Open GL
Download the sample pages (includes Chapter 8 and Index)
Figures xv
Tables xxiii
Listings xxv
Foreword xxxiii
Preface xxxv
Acknowledgments xli
About the Authors xlv
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 16
Drawing Our First Triangle 24
Summary 25
Chapter 3: Following the Pipeline 27
Passing Data to the Vertex Shader 28
Passing Data from Stage to Stage 29
Tessellation 32
Geometry Shaders 36
Primitive Assembly, Clipping, and Rasterization 38
Fragment Shaders 42
Framebuffer Operations 45
Compute Shaders 47
Summary 48
Chapter 4: Math for 3D Graphics 49
Is This the Dreaded Math Chapter? 50
A Crash Course in 3D Graphics Math 51
Understanding Transformations 63
Interpolation, Lines, Curves, and Splines 82
Summary 90
Chapter 5: Data 91
Buffers 92
Uniforms 103
Shader Storage Blocks 126
Atomic Counters 133
Textures 137
Summary 185
Chapter 6: Shaders and Programs 187
Language Overview 188
Compiling, Linking, and Examining Programs 201
Summary 219
Part II: In Depth 221
Chapter 7: Vertex Processing and Drawing Commands 223
Vertex Processing 224
Drawing Commands 231
Storing Transformed Vertices 259
Clipping 276
Summary 282
Chapter 8: Primitive Processing 283
Tessellation 284
Geometry Shaders 310
Summary 340
Chapter 9: Fragment Processing and the Framebuffer 341
Fragment Shaders 342
Per-Fragment Tests 345
Color Output 357
Off-Screen Rendering 364
Antialiasing 384
Advanced Framebuffer Formats 399
Point Sprites 419
Getting at Your Image 428
Summary 435
Chapter 10: Compute Shaders 437
Using Compute Shaders 438
Examples 449
Summary 471
Chapter 11: Controlling and Monitoring the Pipeline 473
Queries 474
Synchronization in OpenGL 493
Summary 498
Part III: In Practice 501
Chapter 12: Rendering Techniques 503
Lighting Models 504
Non-Photo-Realistic Rendering 544
Alternative Rendering Methods 548
Summary 580
Chapter 13: Debugging and Performance Optimization 581
Debugging Your Applications 582
Performance Optimization 589
Summary 616
Chapter 14: Platform Specifics 617
Using Extensions in OpenGL 618
OpenGL on Windows 623
OpenGL on Mac OS X 647
OpenGL on Linux 682
OpenGL on Mobile Platforms 705
Summary 744
Appendix A: Further Reading 747
Appendix B: The SBM File Format 751
Appendix C: The SuperBible Tools 759
Glossary 765
Index 773