Get Started Fast with Modern OpenGL ES Graphics Programming for iPhone, iPod touch, and iPad OpenGL ES technology underlies the user interface and graphical capabilities of Apple's iPhone, iPod touch, and iPad-as well as devices ranging from video-game consoles and aircraft-cockpit displays to non-Apple smartphones. In this friendly, thorough introduction, Erik M. Buck shows how to make the most of Open GL ES in Apple's iOS environment. This highly anticipated title focuses on modern, efficient approaches that use the newest versions of OpenGL ES, helping you avoid the irrelevant, obsolete, and misleading techniques that litter the Internet. Buck embraces Objective-C and Cocoa Touch, showing how to leverage Apple's powerful, elegant GLKit framework to maximize your productivity, achieve tight platform integration, and deliver exceptionally polished apps. If you've written C or C++ code and know object-oriented programming basics, this title brings together everything you need to fully master OpenGL ES graphics for iOS-including downloadable examples specifically designed to jumpstart your own projects. Coverage includes - Understanding core OpenGL ES computer graphics concepts and iOS graphics architecture - Integrating Cocoa Touch with OpenGL ES to leverage the power of Apple's platform - Creating textures from start to finish: opacity, blending, multi-texturing, and compression - Simulating ambient, diffuse, and specular light - Using transformations to render 3D geometric objects from any point of view - Animating scenes by controlling time through application logic - Partitioning data to draw expansive outdoor scenes with rolling terrain - Detecting and handling user interaction with 3D geometry - Implementing special effects ranging from skyboxes to particles and billboards - Systematically optimizing graphics performance - Understanding the essential linear algebra concepts used in computer graphics - Designing and constructing a complete simulation that incorporates everything you've learned
Author(s): Erik M. Buck
Publisher: Addison-Wesley Professional
Year: 2012
Language: English
Pages: 337
Table of Contents
Preface
1 Using Modern Mobile Graphics Hardware
What Is 3D Rendering?
Supplying the Graphics Processor with Data
The OpenGL ES Context
The Geometry of a 3D Scene
Summary
2 Making the Hardware Work for You
Drawing a Core Animation Layer with OpenGL ES
Combining Cocoa Touch with OpenGL ES
The OpenGLES_Ch2_1 Example
Deep Dive: How Does GLKView Work?
Extrapolating from GLKit
Summary
3 Textures
What Is a Texture?
The OpenGLES_Ch3_1 Example
Deep Dive: How Does GLKTextureLoader Work?
The OpenGLES_Ch3_3 Example
Opacity, Blending, and Multi-Texturing
Texture Compression
Summary
4 Shedding Some Light
Ambient, Diffuse, and Specular Light
Calculating How Much Light Hits Each Triangle
Using GLKit Lighting
The OpenGLES_Ch4_1 Example
Bake Lighting into Textures
Fragment Operations
Summary
5 Changing Your Point of View
The Depth Render Buffer
The OpenGLES_Ch5_1 and OpenGLES_Ch5_2 Examples
Deep Dive: Adding a Depth Buffer Without GLKKit
Transformations
Transformation Cookbook
Perspective and the Viewing Frustum
Summary
6 Animation
Motion Within a Scene: The OpenGLES_Ch6_1 Example
Animating Vertex Data
Animating Colors and Lights: The OpenGLES_Ch6_3 Example
Animating Textures
Summary
7 Loading and Using Models
Modeling Tools and Formats
Reading modelplist Files
The OpenGLES_Ch7_1 Example
Advanced Models
Summary
8 Special Effects
Skybox
Deep Dive: How Does GLKSkyboxEffect Work?
Particles
Billboards
Summary
9 Optimization
Render as Little as Possible
Don’t Guess: Profile
Minimize Buffer Copying
Minimize State Changes
Summary
10 Terrain and Picking
Terrain Implementation
Adding Models
OpenGL ES Camera
Picking
Optimizing
Summary
11 Math Cheat Sheet
Overview
Decoding a Matrix
Quaternions
Surviving Graphics Math
Summary
12 Putting It All Together
Overview
Everything All the Time
Device Motion
Summary
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z