Buy new:
$72.55$72.55
Delivery October 10 - 21
Ships from: Amazon Sold by: teddybear
Save with Used - Good
$10.00$10.00
Delivery Friday, October 11
Ships from: Amazon Sold by: BOOKS and More
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1 6th Edition
There is a newer edition of this item:
$56.47
(86)
Only 6 left in stock - order soon.
Purchase options and add-ons
OpenGL® Programming Guide, Sixth Edition
OpenGL is a powerful software interface used to produce high-quality, computergenerated images and interactive applications using 2D and 3D objects, bitmaps, and color images.
The OpenGL® Programming Guide, Sixth Edition, provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.0. This sixth edition of the best-selling "red book" describes the latest features of OpenGL Version 2.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 sixth edition has been updated to include the newest features of OpenGL Version 2.1, including:
- Using server-side pixel buffer objects for fast pixel rectangle download and retrieval
- Discussion of the sRGB texture format
- Expanded discussion of the OpenGL Shading Language
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 OpenGL Architecture Review Board (ARB) Steering Group (now part of the Khronos Group), an industry consortium responsible for guiding the evolution of OpenGL and related technologies.
- ISBN-100321481003
- ISBN-13978-0321481009
- Edition6th
- PublisherAddison-Wesley Professional
- Publication dateJanuary 1, 2007
- LanguageEnglish
- Dimensions7 x 1.75 x 9 inches
- Print length862 pages
4 stars and above
Editorial Reviews
From the Back Cover
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, Sixth Edition, provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.0. This sixth edition of the best-selling "red book" describes the latest features of OpenGL Version 2.1, including expanded coverage of the OpenGL Shading Language. 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 sixth edition has been updated to include the newest features of OpenGL Versions 2.1, including:
- Using server-side pixel buffers objects for fast pixel rectangle download and retrieval
- Discussion of the sRGB texture format
- Expanded discussion of the OpenGL Shading Language
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.
About the Author
Dave Shreiner, a computer graphics specialist 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, and is coauthor of the OpenGL® Reference Manual (Addison-Wesley).
Excerpt. © Reprinted by permission. All rights reserved.
The OpenGL graphics system is a software interface to graphics hardware. (The GL stands for Graphics Library.) It allows you to create interactive programs that produce color images of moving three-dimensional objects. With OpenGL, you can control computer-graphics technology to produce realistic pictures or ones that depart from reality in imaginative ways. This guide explains how to program with the OpenGL graphics system to deliver the visual effect you want.
What This Guide Contains
This guide has 15 chapters. The first five chapters present basic informationthat you need to understand to be able to draw a properly colored and litthree-dimensional object on the screen.
- Chapter 1, "Introduction to OpenGL," provides a glimpse into the kinds of things OpenGL can do. It also presents a simple OpenGL program and explains essential programming details you need to know for subsequent chapters.
- Chapter 2, "State Management and Drawing Geometric Objects," explains how to create a three-dimensional geometric description of an object that is eventually drawn on the screen.
- Chapter 3, "Viewing," describes how such three-dimensional models are transformed before being drawn on a two-dimensional screen. You can control these transformations to show a particular view of a model.
- Chapter 4, "Color," describes how to specify the color and shading method used to draw an object.
- Chapter 5, "Lighting," explains how to control the lighting conditions surrounding an object and how that object responds to light (that is, how it reflects or absorbs light). Lighting is an important topic, since objects usually don't look three-dimensional until they're lit.
The remaining chapters explain how to optimize or add sophisticated features to your three-dimensional scene. You might choose not to take advantage of many of these features until you're more comfortable with OpenGL. Particularly advanced topics are noted in the text where they occur.
- Chapter 6, "Blending, Antialiasing, Fog, and Polygon Offset," describes techniques essential to creating a realistic scene--alpha blending (to create transparent objects), antialiasing (to eliminate jagged edges), atmospheric effects (to simulate fog or smog), and polygon offset (to remove visual artifacts when highlighting the edges of filled polygons).
- Chapter 7, "Display Lists," discusses how to store a series of OpenGL commands for execution at a later time. You'll want to use this feature to increase the performance of your OpenGL program.
- Chapter 8, "Drawing Pixels, Bitmaps, Fonts, and Images," discusses how to work with sets of two-dimensional data as bitmaps or images. One typical use for bitmaps is describing characters in fonts.
- Chapter 9, "Texture Mapping," explains how to map one-, two-, and three-dimensional images called textures onto three-dimensional objects. Many marvelous effects can be achieved through texture mapping.
- Chapter 10, "The Framebuffer," describes all the possible buffers that can exist in an OpenGL implementation and how you can control them. You can use the buffers for such effects as hidden-surface elimination, stenciling, masking, motion blur, and depth-of-field focusing.
- Chapter 11, "Tessellators and Quadrics," shows how to use the tessellation and quadrics routines in the GLU (OpenGL Utility Library).
- Chapter 12, "Evaluators and NURBS," gives an introduction to advanced techniques for efficient generation of curves or surfaces.
- Chapter 13, "Selection and Feedback," explains how you can use OpenGL's selection mechanism to select an object on the screen. Additionally, the chapter explains the feedback mechanism, which allows you to collect the drawing information OpenGL produces, rather than having it be used to draw on the screen.
- Chapter 14, "Now That You Know," describes how to use OpenGL in several clever and unexpected ways to produce interesting results. These techniques are drawn from years of experience with both OpenGL and the technological precursor to OpenGL, the Silicon Graphics IRIS Graphics Library.
- Chapter 15, "The OpenGL Shading Language," discusses the changes that occurred starting with OpenGL Version 2.0. This includes an introduction to the OpenGL Shading Language, also commonly called the "GLSL," which allows you to take control of portions of OpenGL's processing for vertices and fragments. This functionality can greatly enhance the image quality and computational power of OpenGL.
In addition, there are several appendices that you will likely find useful:
- Appendix A, "Order of Operations," gives a technical overview of the operations OpenGL performs, briefly describing them in the order in which they occur as an application executes.
- Appendix B, "State Variables," lists the state variables that OpenGL maintains and describes how to obtain their values.
- Appendix C, "OpenGL and Window Systems," briefly describes the routines available in window-system-specific libraries, which are extended to support OpenGL rendering. Window system interfaces to the X Window System, Apple's Mac/OS, IBM OS/2, and Microsoft Windows are discussed here.
- Appendix D, "Basics of GLUT: The OpenGL Utility Toolkit," discusses the library that handles window system operations. GLUT is portable and it makes code examples shorter and more comprehensible.
- Appendix E, "Calculating Normal Vectors," tells you how to calculate normal vectors for different types of geometric objects.
- Appendix F, "Homogeneous Coordinates and Transformation Matrices," explains some of the mathematics behind matrix transformations.
- Appendix G, "Programming Tips," lists some programming tips based on the intentions of the designers of OpenGL that you might find useful.
- Appendix H, "OpenGL Invariance," describes when and where an OpenGL implementation must generate the exact pixel values described in the OpenGL specification.
- Appendix I, "Built-In OpenGL Shading Language Variables and Functions," lists all of the built-in variables and functions available in the OpenGL Shading Language.
Finally, an extensive Glossary defines the key terms used in this guide.
What's New in This Edition
The sixth edition of the OpenGL Programming Guide includes new andupdated material covering OpenGL Version 2.1:
- Coverage of the following new core capabilities has been added:
- Bug fixes and other clarifications
What You Should Know Before Reading This Guide
This guide assumes only that you know how to program in the C language and that you have some background in mathematics (geometry, trigonometry, linear algebra, calculus, and differential geometry). Even if you have little or no experience with computer graphics technology, you should be able to follow most of the discussions in this book. Of course, computer graphics is a huge subject, so you may want to enrich your learning experience with supplemental reading:- Computer Graphics: Principles and Practice by James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes (Addison-Wesley, 1990)--This book is an encyclopedic treatment of the subject of computer graphics. It includes a wealth of information but is probably best read after you have some experience with the subject.
- 3D Computer Graphics by Andrew S. Glassner (The Lyons Press, 1994)--This book is a nontechnical, gentle introduction to computer graphics. It focuses on the visual effects that can be achieved, rather than on the techniques needed to achieve them.
Another great place for all sorts of general information is the Official OpenGL Web Site. This Web site contains software, sample programs, documentation, FAQs, discussion boards, and news. It is always a good place to start any search for answers to your OpenGL questions:
http://www.opengl.org/
Additionally, full documentation of all the procedures that compose OpenGL Version 2.1 are documented at the Official OpenGL Web site. These Web pages replace the OpenGL Reference Manual that was published by the OpenGL Architecture Review Board and Addison-Wesley.
OpenGL is really a hardware-independent specification of a programming interface, and you use a particular implementation of it on a particular kind of hardware. This guide explains how to program with any OpenGL implementation. However, since implementations may vary slightly--in performance and in providing additional, optional features, for example--you might want to investigate whether supplementary documentation is available for the particular implementation you're using. In addition, you might have OpenGL-related utilities, toolkits, programming and debugging support, widgets, sample programs, and demos available to you with your system.
How to Obtain the Sample Code
This guide contains many sample programs to illustrate the use of particular OpenGL programming techniques. These programs make use of Mark Kilgard's OpenGL Utility Toolkit (GLUT). GLUT is documented in OpenGL Programming for the X Window System by Mark Kilgard (Addison-Wesley, 1996). The section "OpenGL-Related Libraries" in Chapter 1 and Appendix D give more information about using GLUT. If you have access to the Internet, you can obtain the source code for both the sample programs and GLUT for free via anonymous ftp (file-transfer protocol).
For the source code examples found in this book, please visit
http://www.opengl-redbook.com/code/
For Mark Kilgard's source code for GLUT (for Microsoft Windows or the X Window System), check this Web page to find out what current version of GLUT is available and where to download the source code from:
http://www.opengl.org/resources/libraries/glut/
Many implementations of OpenGL might also include the code samples as part of the system. This source code is probably the best source for your implementation, because it might have been optimized for your system. Read your machine-specific OpenGL documentation to see where the code samples can be found.
Nate Robins' OpenGL Tutors
Nate Robins has written a suite of tutorial programs that demonstrate basic OpenGL programming concepts by allowing the user to modify the parameters of a function and interactively see their effects. Topics covered include transformations, lighting, fog, and texturing. These highly recommended tutorials are portable and require the aforementioned GLUT. To get the source code for these tutorials, see this Web site:http://www.xmission.com/~nate/tutors.html
Errata
Undoubtedly this book has errors. An error list is maintained at the following Web site:
http://www.opengl-redbook.com/errata/If you find any bugs, please use this Web site to report them.
Style Conventions
These style conventions are used in this guide:
- Bold--Command and routine names and matrices
- Italics--Variables, arguments, parameter names, spatial dimensions,
- matrix components, and first occurrences of key terms
- Regular--Enumerated types and defined constants
Code examples are set off from the text in a monospace font, and command summaries are shaded with gray boxes.
In a command summary, braces are used to identify options among data types. In the following example, glCommand has four possible suffixes: s, i, f, and d, which stand for the data types GLshort, GLint, GLfloat, and GLdouble. In the function prototype for glCommand, TYPE is a wildcard that represents the data type indicated by the suffix.
void glCommand{sifd}(TYPE x1, TYPE y1, TYPE x2, TYPE y2);
Product details
- Publisher : Addison-Wesley Professional; 6th edition (January 1, 2007)
- Language : English
- Paperback : 862 pages
- ISBN-10 : 0321481003
- ISBN-13 : 978-0321481009
- Item Weight : 2.9 pounds
- Dimensions : 7 x 1.75 x 9 inches
- Best Sellers Rank: #3,293,930 in Books (See Top 100 in Books)
- #89 in OpenGL Software Programming
- #4,444 in Software Development (Books)
- #5,195 in Introductory & Beginning Programming
- 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.
More recently, Dave joined long-time collaborator and fellow author, Ed Angel, in updating his textbook - "Interactive Computer Graphics: A top-down approach using WebGL", as well as presenting courses at Sonoma State University on computer graphics and parallel programming.
In addition to his part-time job writing and presenting courses, Dave is a senior manager at Unity Technologies, leading their low-level graphics APIs team.
Dave & Vicki live with their cat family in California's Sonoma wine country.
Products related to this item
Customer reviews
- 5 star4 star3 star2 star1 star5 star86%0%0%0%14%86%
- 5 star4 star3 star2 star1 star4 star86%0%0%0%14%0%
- 5 star4 star3 star2 star1 star3 star86%0%0%0%14%0%
- 5 star4 star3 star2 star1 star2 star86%0%0%0%14%0%
- 5 star4 star3 star2 star1 star1 star86%0%0%0%14%14%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
You want to know OpenGL, buy this book (get the one appropriate to your OpenGL version).
It will have you believe that certain features of OpenGL are alive and well, when in fact they are archaic, and have been replaced by new facilities in the language. This is not a book that will assist a beginner, it may be of use to a technical historian.
As an example, extensive sample code is provided to illustrate gluBuild2DMipmaps() but no code is provided for the more uptodate GL_GENERATE_MIPMAPS and there is no explanation of it's use with borders...
If you are beginning OpenGL look elsewhere.
