|66.30||approx. 7-9 days|
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. Students will find up-to-date, hands-on guidance for all facets of modern OpenGL development—both desktop and mobile.
Roughly 30% of the 7th edition content by page count will be new. The new content will mostly be confined to new sections in the latter half of the book, with cross references and other supporting materials updated to match. The code samples accompanying the book will be updated to reflect new programming practices.
The new content is based on the techniques described in the “Approaching Zero Driver Overhead” talk and accompanying example programs presented by the author at GDC 2014. The slides for this presentation are viewable at http://www.slideshare.net/CassEveritt/approaching-zero-driver-overhead and have received more than 215,000 hits to date.
At the time that the 6th edition of this book was being written, those features and techniques were very new and not available in widespread graphics hardware. Today, these features are readily available and their use has spurred a lot of interest.
In addition to the new and modified sections, there will be minor changes and tweaks throughout. In particular, a new feature called “Direct State Access” in OpenGL 4.5 has changed the way that almost every OpenGL function is called. Therefore, almost every listing and example in the book will have a note or modification attached to show how to use the new feature(s).
Chapter 5 will see a pretty major overhaul. The section on Buffers will be significantly updated and two entirely new sections in the Textures part of the chapter are going to be added.
Going to add a couple of major new examples, especially making use of compute shaders. There’s an entirely new sample in Chapter 10 about compressing texture data with a compute shader.
There are new sections on security and robustness, and some extras about performance tuning towards the end of the book.
There are also a number of minor features that will add paragraphs and sub-sections throughout the book. also take the opportunity to clarify a few things, fix a couple of issues that readers have reported and elaborate on some of the topics that didn’t get much coverage in the last edition.
The section on OpenGL ES will also be updated to cover OpenGL ES 3.1 (the 6th edition goes to 3.0), and the Android Extension Pack (https://developer.android.com/about/versions/android-5.0.html - see “Android Extension Pack” section).
The accompanying OpenGL sample code (https://github.com/openglsuperbible/sb6code) will be updated and improved as well. Although it doesn’t get printed, it’s very much part of the book.
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
Graham Sellers, AMD Software Architect and Engineering Fellow, represents AMD at the OpenGL ARB. He has contributed to the core OpenGL specification and extensions, and holds several graphics and image processing patents.
Richard S. Wright, Jr., Senior Software Engineer for Software Bisque, developed multimedia astronomy and planetarium software using OpenGL. For more than a decade he taught OpenGL programming in Full Sail University’s game development degree program.
Nicholas Haemel, Director of Camera Software at NVIDIA, has represented NVIDIA at the Khronos Group standards body and authored many OpenGL extensions.