OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 [NOOK Book]


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, ...

See more details below
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
$38.39 price
(Save 20%)$47.99 List Price


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
Read More Show Less

Editorial Reviews

From the Publisher

“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® 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

Read More Show Less

Product Details

  • ISBN-13: 9780132748438
  • Publisher: Pearson Education
  • Publication date: 4/2/2013
  • Series: OpenGL
  • Sold by: Barnes & Noble
  • Format: eBook
  • Edition number: 8
  • Pages: 984
  • Sales rank: 487,576
  • File size: 83 MB
  • Note: This product may take a few minutes to download.

Meet 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.

Read More Show Less

Table of Contents

Figures xxiii

Tables xxix

Examples xxxiii

About This Guide xli


Chapter 1: Introduction to OpenGL 1

What Is OpenGL? 2

Your First Look at an OpenGL Program 3

OpenGL Syntax 8

OpenGL’s Rendering Pipeline 10

Our First Program: A Detailed Discussion 14


Chapter 2: Shader Fundamentals 33

Shaders and OpenGL 34

OpenGL’s Programmable Pipeline 35

An Overview of the OpenGL Shading Language 37

Interface Blocks 60

Compiling Shaders 70

Shader Subroutines 76

Separate Shader Objects 81


Chapter 3: Drawing with OpenGL 85

OpenGL Graphics Primitives 86

Data in OpenGL Buffers 92

Vertex Specification 108

OpenGL Drawing Commands 115

Instanced Rendering 128


Chapter 4: Color, Pixels, and Framebuffers 141

Basic Color Theory 142

Buffers and Their Uses 144

Color and OpenGL 148

Multisampling 153

Testing and Operating on Fragments 156

Per-Primitive Antialiasing 178

Framebuffer Objects 180

Writing to Multiple Renderbuffers Simultaneously 193

Reading and Copying Pixel Data 200

Copying Pixel Rectangles 203


Chapter 5: Viewing Transformations, Clipping, and Feedback 205

Viewing 206

User Transformations 212

OpenGL Transformations 236

Transform Feedback 239


Chapter 6: Textures 259

Texture Mapping 261

Basic Texture Types 262

Creating and Initializing Textures 263

Proxy Textures 276

Specifying Texture Data 277

Sampler Objects 292

Using Textures 295

Complex Texture Types 306

Texture Views 321

Compressed Textures 326

Filtering 329

Advanced Texture Lookup Functions 340

Point Sprites 346

Rendering to Texture Maps 351

Chapter Summary 356


Chapter 7: Light and Shadow 359

Lighting Introduction 360

Classic Lighting Model 361

Advanced Lighting Models 384

Shadow Mapping 400


Chapter 8: Procedural Texturing 411

Procedural Texturing 412

Bump Mapping 433

Antialiasing Procedural Textures 442

Noise 460

Further Information 483


Chapter 9: Tessellation Shaders 485

Tessellation Shaders 486

Tessellation Patches 487

Tessellation Control Shaders 488

Tessellation Evaluation Shaders 496

A Tessellation Example: The Teapot 500

Additional Tessellation Techniques 504


Chapter 10: Geometry Shaders 509

Creating a Geometry Shader 510

Geometry Shader Inputs and Outputs 514

Producing Primitives 525

Advanced Transform Feedback 532

Geometry Shader Instancing 549

Multiple Viewports and Layered Rendering 550

Chapter Summary 559


Chapter 11: Memory 563

Using Textures for Generic Data Storage 564

Shader Storage Buffer Objects 576

Atomic Operations and Synchronization 578

Example 609


Chapter 12: Compute Shaders 623

Overview 624

Workgroups and Dispatch 625

Communication and Synchronization 632

Examples 636

Chapter Summary 647


Appendix A: Basics of GLUT: The OpenGL Utility Toolkit 651

Initializing and Creating a Window 652

Accessing Functions 654

Handling Window and Input Events 655

Managing a Background Process 658

Running the Program 658


Appendix B: OpenGL ES and WebGL 659

OpenGL ES 660

WebGL 662


Appendix C: Built-in GLSL Variables and Functions 673

Built-in Variables 674

Built-in Constants 684

Built-in Functions 686


Appendix D: State Variables 737

The Query Commands 738

OpenGL State Variables 745


Appendix E: Homogeneous Coordinates and Transformation Matrices 829

Homogeneous Coordinates 830

Transformation Matrices 831


Appendix F: OpenGL and Window Systems 835

Accessing New OpenGL Functions 836

GLX: OpenGL Extension for the X Window System 838

WGL: OpenGL Extensions for Microsoft Windows 845

OpenGL in MacOSX: The Core OpenGL (CGL) API and the NSOpenGL Mac OS X’s Core OpenGL Library . 851

The NSOpenGL Classes 854


Appendix G: Floating-Point Formats for Textures, Framebuffers, and Renderbuffers 857

Reduced-Precision Floating-Point Values 858

16-bit Floating-Point Values 858

10- and 11-bit Unsigned Floating-Point Values 860


Appendix H: Debugging and Profiling OpenGL 865

Creating a Debug Context 866

Debug Output 868

Debug Groups 875

Profiling 879


Appendix I: Buffer Object Layouts 885

Using Standard Layout Qualifiers 886

The std140 Layout Rules. 886

The std430 Layout Rules 887


Glossary 889

Index 919

Read More Show Less

Customer Reviews

Average Rating 5
( 1 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted April 16, 2013

    No text was provided for this review.

Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)