OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 4.3 8th Edition
| Dave Shreiner (Author) Find all the books, read about the author, and more. See search results for this author |
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
Includes Complete Coverage of the OpenGL® Shading Language!
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
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Editorial Reviews
Review
Wow! This book is basically one-stop shopping for OpenGL information. It is the kind of book that I will be reaching for a lot. Thanks to Dave, Graham, John, and Bill for an amazing effort. " Mike Bailey, professor, Oregon State University " The most recent Red Book parallels the grand tradition of OpenGL; continuous evolution towards ever-greater power and efficiency. The eighth edition contains up-to-the minute information about the latest standard and new features, along with a solid grounding in modern OpenGL techniques that will work anywhere. The Red Book continues to be an essential reference for all new employees at my simulation company. What else can be said about this essential guide? I laughed, I cried, it was much better than Cats I ll read it again and again. " Bob Kuehne, president, Blue Newt Software " OpenGL has undergone enormous changes since its inception twenty years ago. This new edition is your practical guide to using the OpenGL of today. Modern OpenGL is centered on the use of shaders, and this edition of the Programming Guide jumps right in, with shaders covered in depth in Chapter 2. It continues in later chapters with even more specifics on everything from texturing to compute shaders. No matter how well you know it or how long you ve been doing it, if you are going to write an OpenGL program, you want to have a copy of the "OpenGL(r) Programming Guide "handy. " Marc Olano, associate professor, UMBC " If you are looking for the definitive guide to programming with the very latest version of OpenGL, look no further. The authors of this book have been deeply involved in the creation of OpenGL 4.3, and everything you need to know about the cutting edge of this industry-leading API is laid out here in a clear, logical, and insightful manner. " Neil Trevett, president, Khronos Group ""
About the Author
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.
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Product details
- Publisher : Addison-Wesley Professional; 8th edition (March 30, 2013)
- Language : English
- Paperback : 935 pages
- ISBN-10 : 0321773039
- ISBN-13 : 978-0321773036
- Item Weight : 3.29 pounds
- Dimensions : 7 x 2 x 9 inches
- Best Sellers Rank: #381,819 in Books (See Top 100 in Books)
- #8 in OpenGL Software Programming
- #150 in Digital Video Production (Books)
- #236 in Computer Graphics
- Customer Reviews:
About the author

Dave Shreiner started his graphics career hacking on a Commodore 64 back in 1981 (a mere 15 years after his birth [yes, late by today's standards], but computers weren't prevalent in Etters, Pennsylvania at that time). Things started to get interesting at the University of Delaware in 1988, where he got to work on his (well, his employer's) first Silicon Graphics Computer Systems ("SGI" to those how know and loved them) machine (a 4D/220GTX running at 25MHz). Combining his love of science, mathematics, and video games, his first graphics programs were for visualizing molecules.
After a somewhat tumultuous college career, Dave went on to do more work on SGI machines doing flight simulation and user-interface design. As that work dried up, he joined SGI in 1991 helping graphics programmers work with Iris GL (OpenGL's predecessor). His career continued as he began teaching classes on Iris GL, user-interface design, and parallel and real-time programming, all the while being mentored by Mason Woo. Around the same time, he was introduced to the fledgling OpenGL API being developed, and asked to author an introductory course on the subject.
Around the same time, he met Vicki - his future wife - eventually mentoring her in OpenGL programming. Not long after, they wed, and formed a family mostly composed of felines.
In 1997, Dave joined forces with Mason in his first writing activity as they updated the "OpenGL Programming Guide" (the "Red Book") to its third edition. At the same time, Mason and co-presenter Ed Angel (author of "Interactive Computer Graphics: A top-down approach using OpenGL") added Dave into their SIGGRAPH (the annual computer graphics conference) course team, and so the mayhem began.
Over the next decade, Dave continued to work at SGI in various roles, including OpenGL driver development for many of their products. He also updated the "OpenGL Programming Guide" three more times, and was involved in presenting another 13 SIGGRAPH courses on OpenGL (and countless others at other conferences). Also during this time, Addison-Wesley - the publisher of the "OpenGL Programming Guide" and numerous other books related to OpenGL - made him series editor for their OpenGL library, allowing him to provide direction and input into their books relating to OpenGL.
In 2006, Dave's career steered to a new vector, as he went off to do work on GPU computing. At the same time, he also worked as chair of SIGGRAPH's courses program (as well as once again presenting a course).
While GPU computing was increasing in relevance, Dave felt that mobile computer graphics was on the cusp of becoming an even bigger thing, and joined ARM's (the embedded CPU company) graphics group to directly contribute to the fray. Soon after, he became involved with OpenGL ES, the embedded version of OpenGL. At the same time, he contributed to the "OpenGL ES 2.0 Programming Guide", and began presenting courses on OpenGL's embedded version.
Most recently, Dave joined long-time collaborator and fellow author, Ed Angel, in updating his textbook - "Interactive Computer Graphics" - to a new shader-only format, and is currently working on revising the "OpenGL Programming Guide" to reflect the most recent changes in OpenGL.
Dave lives with Vicki and their cat Phantom, splitting their time between their home in Mountain View and Sonoma County in California's wine country.
Customer reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
That said, it does contain a lot of useful information, and it occupies the useful middle ground between reading tedious and generally opaque manual pages and reading tedious and largely irrelevant tutorials. And, yes, it does integrate the material about shaders, knowledge of which is no longer optional.
But wow, for an official publication detailing an essential technology, I certainly wish it were less frustrating.
Take the first few chapters, for instance. You get to see the most basic program possible, then you take a chapter long diatribe on shaders, which goes overkill since you don't even know how to draw a vertex yet. Then, when it comes back (in chapter three!) to finally start talking about drawing, they just throw a bunch of API documentation at you, instead of showing either a full program or snippets that would be useful.
The source code is a pile of crap, too. Instead of putting everything a user would want to see into each sample program, they abstracted a ton of setup into their own code, which is awful to read. For example, who creates the main() function inside of a macro? Well, these morons do. Oh, and it doesn't even compile on Linux without writing your own Makefiles and fixing problems throughout the code. Save yourself from this flaming pile of garbage.
There is sample code, but it often doesn't show anything beyond what you can already tell from the function signature. There are no bigger examples showing how to tie things together, andexcept for the introductory triangle program, there are no complete examples. Some of the code even has easy to notice syntactic and logical errors.
The book assumes you are already proficient with C/C++ and have a basic understanding of linear algebra and computer graphics. If you are a beginner programmer that would like to do graphical programming, do NOT get this book. It will be way over your head and you will be disappointed. There are simpler alternatives - SDL and the likes. Again, the target demographic for this book is intermediate to experienced programmers.
I would have given this book five stars, but the Kindle edition is rife with spelling and grammatical errors, even in the code examples! The spelling errors in the code examples make certain examples difficult to understand, especially when variable names change midway through the code. Not cool, guys (authors). Don't include code snippets that would generate compile time errors.
Top reviews from other countries
This book goes into great detail about pointless and redundant functions, like explaining how to allocate, de-allocate, bind, and query for the existence of every type of OpenGL resource (which typically gets a full page per resource, but is always the same except for the function name) - yet it fails to explain what it actually is you are allocating, or what you might use it for, or what a good strategy for its use is.
As an example: what is a VAO? Sure, having read the book, I know how to allocate one now - now tell me: why would I? What does it do, and how do I best use it?
Function arguments are also barely explained. A vital table, explaining what the arguments to glReadBuffer() actually do, and that was present in the predecessor book, is now missing. I understand a book must have a limited length, but a book that positions itself as "the official guide to learning" should surely prioritize the basics of the API over much more esoteric subjects like the procedural texturing chapter?
There's also the use of home-grown software to skip over certain important details - the book uses several pages to describe how to use a function that isn't even in OpenGL, but part of the authors' personal library. Meanwhile, any explanation of the OpenGL API being called inside that function is missing completely - and a listing for the function is also missing.
All in all, this is a pretty useless and confusing book. If you are buying this in the hopes of understanding OpenGL, you will have a long struggle ahead of you including many trips to the internet to try and figure out what all those weird functions really do.
My second criticism is that it relies heavily on 3rd party library such as GLUT, which isn't always what you want.
Lastly, the kindle book has a few formatting issues. A few of the links sent me to blank pages or to an incorrect page.
I have a fairly strong background in C/C++ but have not really done any computer graphics work and I am currently trying to learn Java, OpenGL and JOGL all at once for a large cross-platform project. I bought this book really expecting to have my work cut out for me in applying the techniques and code samples in Java; I couldn't have been more wrong. In the first day, I have pushed through three and a bit chapters of this book and have all the source code samples so far working in Java without GLUT (albeit with a bit of Googling for JOGL info). Side note: for those that don't want to use GLUT, it is easy enough to remove. The book only uses that for OS-specific stuff like windows and event handling to make the code samples smaller and more portable. All the OpenGL info is still there.
The topics are presented in a logical order and explained well, and from skimming through the rest of the book it looks like pretty much everything I need is in this one book. I already feel like I am on my way to becoming a decent graphics programmer, because the book is helping me to actually *understand* what I'm doing and what is going on behind the scenes rather than just throwing code at me.
I highly recommend this book to anyone looking for an in-depth yet easy to read reference and tutorial on modern graphics programming. The only reason I'm giving four stars rather than five is that as of this writing the full source code is apparently still not available :(






