Home > Store > Programming > Graphic Programming

larger cover

Add To My Wish List

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1, 7th Edition

Register your product to gain access to bonus material or receive a coupon.

  • Audio & Video
  • Description
  • Downloads
  • Extras
  • Reviews
  • Sample Content

Product Author Bios

Dave Shreiner, director of graphics technology at ARM, Inc., was a longtime member of the core OpenGL team at SGI. He authored the first commercial OpenGL training course and has been developing computer graphics applications for more than two decades. Dave regularly presents at SIGGRAPH and other conferences worldwide. He is coauthor of the OpenGL ES 2.0 Programming Guide (Addison-Wesley, 2009) and the OpenGL® Reference Manual (Addison-Wesley, 2004), and is series editor for Addison-Wesley’s OpenGL Series.

Video

An interview with author Dave Shreiner at SIGGRAPH 2009.

You need to upgrade your Flash Player. You need version 9 or above to view this video. You may download it here. You may also see this message if you have JavaScript turned off. If this is the case, please enable JavaScript and reload the page.

OpenGL is a powerful software interface used to produce high-quality, computer-generated images and interactive applications using 2D and 3D objects, bitmaps, and color images.

 

The OpenGL®Programming Guide, Seventh Edition, provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.1. This seventh edition of the best-selling “red book” describes the latest features of OpenGL Versions 3.0 and 3.1. You will find clear explanations of OpenGL functionality and many basic computer graphics techniques, such as building and rendering 3D models; interactively viewing objects from different perspective points; and using shading, lighting, and texturing effects for greater realism. In addition, this book provides in-depth coverage of advanced techniques, including texture mapping, antialiasing, fog and atmospheric effects, NURBS, image processing, and more. The text also explores other key topics such as enhancing performance, OpenGL extensions, and cross-platform techniques.

 

This seventh edition has been updated to include the newest features of OpenGL Versions 3.0 and 3.1, including

 

  • Using framebuffer objects for off-screen rendering and texture updates
  • Examples of the various new buffer object types, including uniform-buffer objects, transform feedback buffers, and vertex array objects
  • Using texture arrays to increase performance when using numerous textures
  • Efficient rendering using primitive restart and conditional rendering
  • Discussion of OpenGL’s deprecation mechanism and how to verify your programs for future versions of OpenGL

 

This edition continues the discussion of the OpenGL Shading Language (GLSL) and explains the mechanics of using this language to create complex graphics effects and boost the computational power of OpenGL. The OpenGL Technical Library provides tutorial and reference books for OpenGL. The Library enables programmers to gain a practical understanding of OpenGL and shows them how to unlock its full potential. Originally developed by SGI, the Library continues to evolve under the auspices of the Khronos OpenGL ARB Working Group, an industry consortium responsible for guiding the evolution of OpenGL and related technologies.

 

Web Resources

Please visit www.opengl-redbook.com/appendices/ to access the appendices online.

Customer Reviews

47 of 47 people found the following review helpful
3.0 out of 5 stars Well, it should have been pure 3.1., August 19, 2009
By 
This review is from: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition) (Paperback)
Much like the other reviewer, I have to admit being underwhelmed. Back at the OpenGL BOF at Siggraph in 2008, it was announced that the authors were working on an updated "Red Book". I waited patiently for this new edition, fully expecting a book that concisely covered the new 3.0-3.1 openGL api programming philosophy. Having used the Red Books for 6 years now, I looked forward to a straightforward narrative that would be easier to read than the spec and a pile of extensions.

Now, to give credit where it's due, this book does talk about the new APIs, (hence the 3 stars). But it is unfortunately littered with page after page of material on deprecated API bits. I can't imagine why the authors would do this, apart from maybe the publisher pushing a page count?

[...edit - I went on and on...]

Anyway, guys, please, if you're reading this, in the next edition, trim the fat. If it's not 3.1-compliant, cut it out. There are plenty of 2.1 references out... Read more
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


24 of 24 people found the following review helpful
2.0 out of 5 stars Page after page of deprecated APIs, December 12, 2009
This review is from: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition) (Paperback)
I have been relying on the red books for years. I am fairly disappointed with this particular edition because most of the book, as others have pointed out, covers deprecated APIs. Personally I don't mind that, since we are likely to encounter legacy code, may also need to port it, and an understanding of the history can be useful. The trouble is not with the deprecated APIs, it's with the authors often not explaining what it has been superseded by. The chapter on selection and feedback is a perfect example of this. A chapter will go on for several dozen pages, but begin with a small note at the beginning of the chapter with words to the effect of "everything you are about to read is deprecated".
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


35 of 38 people found the following review helpful
1.0 out of 5 stars Very Disappointing, July 30, 2009
By 
Ganesh "Ganesh" (Bangalore, India) - See all my reviews
(REAL NAME)   
This review is from: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition) (Paperback)
Extremely disappointed with this book. I was eagerly looking forward to this book hoping that this would enable me to learn the new programming model of OpenGL ( programmable pipe-line )which is substantially different from the previous versions. The initial description of this book ( before it was actually released )had mentioned that this edition would have 70% new material ( text and code ) and would completely cover the new approach. Not sure as to what happened but this book is mostly a re-print of the 6th edition with a small table next to each API which indicates whether the API is deprecated or not ( Most of it are deprecated and I'm not sure why we need a book that explains all the deprecated API's and how to program with deprecated features). Will wait for OpenGL SuperBible 5th Edition now ( Hopefully there is something like that in the works ).
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 10 customer reviews...

Online Sample Chapter

OpenGL Programming Guide: State Management and Drawing Geometric Objects

Table of Contents

Figures xxi

Tables xxv

Examples xxix

About This Guide xxxv

Acknowledgments xlv

 

Chapter 1: Introduction to OpenGL 1

What Is OpenGL? 2

A Smidgen of OpenGL Code 5

OpenGL Command Syntax 7

OpenGL as a State Machine 9

OpenGL Rendering Pipeline 10

OpenGL-Related Libraries 14

Animation 22

OpenGL and Its Deprecation Mechanism 27

 

Chapter 2: State Management and Drawing Geometric Objects 31

A Drawing Survival Kit 34

Describing Points, Lines, and Polygons 42

Basic State Management 53

Displaying Points, Lines, and Polygons 55

Normal Vectors 68

Vertex Arrays 70

Buffer Objects 91

Vertex-Array Objects 104

Attribute Groups 110

Some Hints for Building Polygonal Models of Surfaces 113

 

Chapter 3: Viewing 123

Overview: The Camera Analogy 126

Viewing and Modeling Transformations 137

Projection Transformations 152

Viewport Transformation 158

Troubleshooting Transformations 162

Manipulating the Matrix Stacks 164

Additional Clipping Planes 168

Examples of Composing Several Transformations 172

Reversing or Mimicking Transformations 179

 

Chapter 4: Color 185

Color Perception 186

Computer Color 188

RGBA versus Color-Index Mode 190

Specifying a Color and a Shading Model 196

 

Chapter 5: Lighting 203

A Hidden-Surface Removal Survival Kit 205

Real-World and OpenGL Lighting 207

A Simple Example: Rendering a Lit Sphere 210

Creating Light Sources 214

Selecting a Lighting Model 227

Defining Material Properties 231

The Mathematics of Lighting 240

Lighting in Color-Index Mode 246

 

Chapter 6: Blending, Antialiasing, Fog, and Polygon Offset 249

Blending 251

Antialiasing 267

Fog 280

Point Parameters 291

Polygon Offset 293

 

Chapter 7: Display Lists 297

Why Use Display Lists? 298

An Example of Using a Display List 299

Display List Design Philosophy 302

Creating and Executing a Display List 305

Executing Multiple Display Lists 312

Managing State Variables with Display Lists 318

 

Chapter 8: Drawing Pixels, Bitmaps, Fonts, and Images 321

Bitmaps and Fonts 323

Images 333

Imaging Pipeline 343

Reading and Drawing Pixel Rectangles 359

Using Buffer Objects with Pixel Rectangle Data 362

Tips for Improving Pixel Drawing Rates 366

Imaging Subset 367

 

Chapter 9: Texture Mapping 389

An Overview and an Example 395

Specifying the Texture 400

Filtering 434

Texture Objects 437

Texture Functions 444

Assigning Texture Coordinates 448

Automatic Texture-Coordinate Generation 457

Multitexturing 467

Texture Combiner Functions 472

Applying Secondary Color after Texturing 478

Point Sprites 479

The Texture Matrix Stack 481

Depth Textures 483

 

Chapter 10: The Framebuffer 489

Buffers and Their Uses 492

Testing and Operating on Fragments 501

The Accumulation Buffer 518

Framebuffer Objects 526

 

Chapter 11: Tessellators and Quadrics 541

Polygon Tessellation 542

Quadrics: Rendering Spheres, Cylinders, and Disks 559

 

Chapter 12: Evaluators and NURBS 569

Prerequisites 571

Evaluators 572

The GLU NURBS Interface 586

 

Chapter 13: Selection and Feedback 605

Selection 606

Feedback 627

 

Chapter 14: Now That You Know 635

Error Handling 637

Which Version Am I Using? 639

Extensions to the Standard 641

Cheesy Translucency 644

An Easy Fade Effect 645

Object Selection Using the Back Buffer 646

Cheap Image Transformation 647

Displaying Layers 649

Antialiased Characters 650

Drawing Round Points 653

Interpolating Images 653

Making Decals 653

Drawing Filled, Concave Polygons Using the Stencil Buffer 655

Finding Interference Regions 656

Shadows 658

Hidden-Line Removal 659

Texture Mapping Applications 661

Drawing Depth-Buffered Images 662

Dirichlet Domains 662

Life in the Stencil Buffer 664

Alternative Uses for glDrawPixels() and glCopyPixels() 665

 

Chapter 15: The OpenGL Shading Language 667

The OpenGL Graphics Pipeline and Programmable Shading 668

Using GLSL Shaders 672

The OpenGL Shading Language 681

Creating Shaders with GLSL 681

Uniform Blocks 692

Accessing Texture Maps in Shaders 707

Shader Preprocessor 711

Extension Processing in Shaders 714

Vertex Shader Specifics 715

Transform Feedback 722

Fragment Shader Specifics 727

 

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

Initializing and Creating a Window 732

Handling Window and Input Events 733

Loading the Color Map 735

Initializing and Drawing Three-Dimensional Objects 735

Managing a Background Process 736

Running the Program 737

 

Appendix B: State Variables 739

The Query Commands 740

OpenGL State Variables 743

 

Appendix C: Homogeneous Coordinates and Transformation Matrices 803

Homogeneous Coordinates 804

Transformation Matrices 805

 

Appendix D: OpenGL and Window Systems 809

Accessing New OpenGL Functions 810

GLX: OpenGL Extension for the X Window System 812

AGL: OpenGL Extensions for the Apple Macintosh 819

WGL: OpenGL Extension for Microsoft Windows 95/98/NT/ME/2000/XP 824

 

Glossary 831

Index 857

 

The following appendices are available online at http://www.opengl-redbook.com/appendices/.

 

Appendix E: Order of Operations

Appendix F: Programming Tips

Appendix G: OpenGL Invariance

Appendix H: Calculating Normal Vectors

Appendix I: Built-In OpenGL Shading Language Variables and Functions

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

Appendix K: RGTC Compressed Texture Format

Appendix L: std140 Uniform Buffer Layout

Sample Pages

Download the sample pages (includes Chapter 2 and Index)

 
Best Value

Book + eBook Bundle  $107.98  $64.79

Book Price $47.99
eBook Price $16.80
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $59.99  $47.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

eBook (Watermarked)  $47.99  $38.39

Includes EPUB, MOBI, and PDF
About eBook Formats

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.