did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321481009

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1

by ; ; ; ;
  • ISBN13:

    9780321481009

  • ISBN10:

    0321481003

  • Edition: 6th
  • Format: Paperback
  • Copyright: 2008-01-01
  • Publisher: Addison-Wesley Professional
  • View Upgraded Edition
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $69.99

Summary

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.

Table of Contents

Figuresp. xxi
Tablesp. xxv
Examplesp. xxix
About This Guidep. xxxv
What This Guide Containsp. xxxv
What's New in This Editionp. xxxviii
What You Should Know Before Reading This Guidep. xxxviii
How to Obtain the Sample Codep. xxxix
Nate Robins' OpenGL Tutorsp. xl
Erratap. xl
Style Conventionsp. xl
Acknowledgmentsp. xliii
Introduction to OpenGLp. 1
What Is OpenGL?p. 2
A Smidgen of OpenGL Codep. 5
OpenGL Command Syntaxp. 7
OpenGL as a State Machinep. 9
OpenGL Rendering Pipelinep. 10
OpenGL-Related Librariesp. 14
Animationp. 20
State Management and Drawing Geometric Objectsp. 27
A Drawing Survival Kitp. 29
Describing Points, Lines, and Polygonsp. 37
Basic State Managementp. 48
Displaying Points, Lines, and Polygonsp. 50
Normal Vectorsp. 63
Vertex Arraysp. 65
Buffer Objectsp. 82
Attribute Groupsp. 91
Some Hints for Building Polygonal Models of Surfacesp. 94
Viewingp. 103
Overview: The Camera Analogyp. 106
Viewing and Modeling Transformationsp. 117
Projection Transformationsp. 133
Viewport Transformationp. 138
Troubleshooting Transformationsp. 142
Manipulating the Matrix Stacksp. 145
Additional Clipping Planesvp. 149
Examples of Composing Several Transformationsp. 152
Reversing or Mimicking Transformationsp. 160
Colorp. 165
Color Perceptionp. 166
Computer Colorp. 168
RGBA versus Color-Index Modep. 170
Specifying a Color and a Shading Modelp. 176
Lightingp. 183
A Hidden-Surface Removal Survival Kitp. 185
Real-World and OpenGL Lightingp. 187
A Simple Example: Rendering a Lit Spherep. 190
Creating Light Sourcesp. 194
Selecting a Lighting Modelp. 207
Defining Material Propertiesp. 211
The Mathematics of Lightingp. 220
Lighting in Color-Index Modep. 226
Blending, Antialiasing, Fog, and Polygon Offsetp. 229
Blendingp. 231
Antialiasingp. 247
Fogvp. 261
Point Parametersp. 271
Polygon Offsetp. v274
Display Listsp. 277
Why Use Display Lists?p. 278
An Example of Using a Display Listp. 279
Display List Design Philosophyp. v282
Table of Contents provided by Publisher. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

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 Guideincludes new andupdated material covering OpenGL Version 2.1: Coverage of the following new core capabilities has been added: - Storage of pixel rectangles in buffer objects.- Support for sRGB formatted textures. The sRGB color space roughly corresponds to a gamma-corrected RGB space (using a gamma value of 2.2).- Specification of nonsquare matrices as uniform variables in OpenGL shading language shader programs.- Expanded discussion of the OpenGL shading language, including additions supporting OpenGL Version 2.1 functionality. 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 Practiceby James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes (Addison-Wesley, 1990)--This book is an encyclopedic treatment

Rewards Program