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.

9780321502797

OpenGL ES 2.0 Programming Guide

by ; ;
  • ISBN13:

    9780321502797

  • ISBN10:

    0321502795

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2008-07-24
  • 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: $59.99
  • Digital
    $62.09
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

The first comprehensive guide to developing 3D graphic applications on mobile devices, from the leading authorities on OpenGL ES.

Author Biography

Aaftab Munshi is the spec editor for the OpenGL ES 1.1 and 2.0 specifications. Now at Apple, he was formerly senior architect in ATI’s handheld group.

Dan Ginsburg is senior member of technical staff at AMD. At AMD and ATI, he has worked in a variety of roles, including the development of OpenGL drivers, the creation of desktop and handheld 3D demos, and the development of handheld GPU developer tools.

Dave Shreiner is one of the world’s foremost authorities on OpenGL. He is a systems architect at ARM, Inc., and the lead author of the official OpenGL® Programming Guide, Sixth Edition (Addison-Wesley, 2007) and series editor for the Addison-Wesley OpenGL Series.

Table of Contents

List of Figuresp. xiii
List of Examplesp. xv
List of Tablesp. xix
Foreword xxi Prefacep. xxiii
Acknowledgmentsp. xxix
About the Authorsp. xxxi
Introduction to OpenGL ES 2.0 1 What Is OpenGL ES?p. 1
OpenGL ES 2.0 3 Vertex Shaderp. 4
Primitive Assemblyp. 6
Rasterizationp. 7
Fragment Shaderp. 7
Per-Fragment Operationsp. 9
OpenGL ES 2.0 and OpenGL ES 1.x Backward Compatibilityp. 11
EGLp. 12
Programming with OpenGL ES 2.0 13 Further Readingp. 18
Hello Triangle: An OpenGL ES 2.0 Examplep. 19
Code Frameworkp. 20
Where to Download the Examplesp. 20
Hello Triangle Examplep. 21
Building and Running the Examplesp. 25
Using the OpenGL ES 2.0 Frameworkp. 26
Creating a Simple Vertex and Fragment Shaderp. 27
Compiling and Loading the Shadersp. 29
Creating a Program Object and Linking the Shadersp. 30
Setting the Viewport and Clearing the Color Bufferp. 32
Loading the Geometry and Drawing a Primitivep. 33
Displaying the Back Bufferp. 33
An Introduction to EGLp. 35
Communicating with the Windowing Systemp. 36
Checking for Errorsp. 37
Initializing EGLp. 37
Determining the Available Surface Configurationsp. 38
Querying EGLConfig Attributesp. 39
Letting EGL Choose the Configp. 39
Creating an On-Screen Rendering Area: The EGL Windowp. 43
Creating an Off-Screen Rendering Area: EGL Pbuffersp. 46
Creating a Rendering Contextp. 50
Making an EGLContext Currentp. 52
Putting All Our EGL Knowledge Togetherp. 52
Synchronizing Renderingp. 54
Shaders and Programsp. 57
Shaders and Programsp. 57
Uniforms and Attributesp. 67
Shader Compiler and Shader Binariesp. 72
OpenGL ES Shading Languagep. 77
OpenGL ES Shading Language Basicsp. 78
Variables and Variable Typesp. 78
Variable Constructorsp. 79
Vector and Matrix Componentsp. 81
Constantsp. 82
Structuresp. 82
Arraysp. 83
Operatorsp. 84
Functionsp. 85
Built-In Functionsp. 86
Control Flow Statementsp. 87
Uniforms 88 Attributesp. 89
Varyingsp. 90
Preprocessor and Directivesp. 92
Uniform and Varying Packingp. 94
Precision Qualifiers 96 Invariancep. 97
Vertex Attributes, Vertex Arrays, and Buffer Objectsp. 101
Specifying Vertex Attribute Datap. 102
Declaring Vertex Attribute Variables in a Vertex Shaderp. 110
Vertex Buffer Objectsp. 115
Mapping Buffer Objectsp. 124
Primitive Assembly and Rasterizationp. 127
Primitivesp. 127
Drawing Primitivesp. 131
Primitive Assemblyp. 136
Rasterizationp. 141
Vertex Shadersp. 147
Vertex Shader Overviewp. 148
Vertex Shader Examplesp. 159
Generating Texture Coordinatesp. 167
Vertex Skinningp. 168
OpenGL ES 1.1 Vertex Pipeline as an ES 2.0 Vertex Shaderp. 173
Texturingp. 181
Texturing Basicsp. 181
Compressed Texturesp. 201
Texture Subimage Specificationp. 202
Copying Texture Data from the Color Bufferp. 204
Optional Extensionsp. 207
Fragment Shadersp. 215
Fixed Function Fragment Shadersp. 216
Fragment Shader Overviewp. 218
Implementing Fixed Function Techniques Using Shadersp. 222
Fragment Operationsp. 233
Buffersp. 234
Fragment Tests and Operationsp. 238
Blendingp. 246
Ditheringp. 249
Multisampled Antialiasingp. 249
Reading and Writing Pixels to the Framebufferp. 250
Framebuffer Objectsp. 253
Why Framebuffer Objectsp. 253
Framebuffer and Renderbuffer Objectsp. 255
Creating Framebuffer and Renderbuffer Objectsp. 258
Using Renderbuffer Objects 259 Using Framebuffer Objectsp. 262
Deleting Framebuffer and Renderbuffer Objectsp. 269
Examplesp. 271
Performance Tips and Tricksp. 277
Advanced Programming with OpenGL ES 2.0p. 279
Per-Fragment Lightingp. 279
Environment Mappingp. 286
Particle System with Point Spritesp. 290
Image Postprocessingp. 296
Projective Texturing
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

OpenGL ES 2.0 is a software interface for rendering sophisticated 3D graphics on handheld and embedded devices. OpenGL ES 2.0 is the primary graphics library for handheld and embedded devices with programmable 3D hardware including cell phones, PDAs, consoles, appliances, vehicles and avionics. With OpenGL ES 2.0, the full programmability of shaders has made its way onto small and portable devices. This book details the entire OpenGL ES 2.0 API and pipeline with detailed examples in order to provide a guide for developing a wide range of high performance 3D applications for handheld devices. Intended Audience This book is intended for programmers interested in learning OpenGL ES 2.0. We expect the reader to have a solid grounding in computer graphics. We will explain many of the relevant graphics concepts as they relate to various parts of OpenGL ES 2.0, but we do expect the reader to understand basic 3D concepts. The code examples in the book are all written in C. We assume that the reader is familiar with C or C++ and will only be covering language topics where they are relevant to OpenGL ES 2.0. This book covers the entire OpenGL ES 2.0 API along with all Khronos-ratified extensions. The reader will learn about setting up and programming every aspect of the graphics pipeline. The book details how to write vertex and fragment shaders and how to implement advanced rendering techniques like per-pixel lighting and particle systems. In addition, the book provides performance tips and tricks for efficient use of the API and hardware. After finishing the book, the reader will be ready to write OpenGL ES 2.0 applications that fully harness the programmable power of embedded graphics hardware. Organization of the Book This book is organized to cover the API in a sequential fashion, building up your knowledge of OpenGL ES 2.0 as we go. Chapter 1 - Introduction to OpenGL ES 2.0 This chapter gives an introduction to OpenGL ES followed by an overview of the OpenGL ES 2.0 graphics pipeline. We discuss the philosophies and constraints that went into the design of OpenGL ES 2.0. Finally, the chapter covers some general conventions and types used in OpenGL ES 2.0. Chapter 2 - Hello Triangle: An OpenGL ES 2.0 Example This chapter walks through a simple OpenGL ES 2.0 example program that draws a triangle. Our purpose here is to show what an OpenGL ES 2.0 program looks like, introduce the reader to some API concepts, and describe how to build and run an example OpenGL ES 2.0 program. Chapter 3 - An Introduction to the EGL This chapter presents EGL, the API for creating surfaces and rendering contexts for OpenGL ES 2.0. The chapter describes how to communicate with the native windowing system, choose a configuration and create EGL rendering contexts and surfaces. We teach you enough EGL to so that you can do everything you will need to do to get up and rendering with OpenGL ES 2.0. Chapter 4 - Shaders and Programs Shader objects and program objects form the most fundamental objects in OpenGL ES 2.0. In this chapter, we describe how to create a shader object, compile a shader, and check for compile errors. The chapter also covers how to create a program object, attach shader objects to it, and link a final program object. We discuss how to query the program object for information and how to load uniforms. In addition, you will learn about the difference between source and binary shaders and how to use each. Chapter 5 - OpenGL ES Shading Language This chapter covers the shading language basics needed for writing shaders. The shading language basics described are variables and types, constructors, structures, arrays, attributes, uniforms, and varyings. This chapter also describes some more nuanced parts of the language such as precision qualifiers and invariance.. Chapter 6 - Vertex Attributes, Vertex Arrays, and Buffer Obj

Rewards Program