Learning OpenGL ES for iOS:
A Hands-on Guide to Modern 3D Graphics Programming
OpenGL ES technology underlies the user interface and graphical capabilities exhibited by Apple’s iOS devices, iPhone, iPod Touch, and iPad. The “ES” stands for Embedded Systems, and the same technology applies to video game consoles and aircraft cockpit displays, as well as a wide range of cell phones from almost every manufacturer. OpenGL ES is a subset of the OpenGL versions used with desktop operating systems. As a result, OpenGL ES applications are often adaptable to desktop systems, too.
This book introduces modern graphics programming and succinctly explains the effective uses of OpenGL ES for iOS devices. Numerous example programs demonstrate graphics programming concepts. This book serves as a gentle but thorough explanation of graphics technology from the lowest level bit manipulation to advanced topics.
A significant challenge to learning graphics programming manifests the first time you try to sort through piles of misleading information and out-of-date examples littering the Internet. OpenGL started as a small software library for state-of-the-art graphics workstations in 1992. Graphics hardware improved so much so quickly that handheld devices now outperform the best systems money could buy when OpenGL was new. As hardware advanced, some of the compromises and assumptions made by the designers of OpenGL lost relevance. At least 12 different versions of the OpenGL standard exist, and modern OpenGL ES omits support for many techniques that were common in previous versions. Unfortunately, obsolete code, suboptimal approaches, and anachronistic practices built up over decades remain high in Google search results. This book focuses on modern, efficient approaches and avoids distractions from irrelevant and obsolete practices.
- 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