About the Book
In the OpenGL ES™ 3.0 Programming Guide, the authors cover the entire API and Shading Language. They carefully introduce OpenGL ES 3.0 features such as shadow mapping, instancing, multiple render targets, uniform buffer objects, texture compression, program binaries, and transform feedback.
Through detailed, downloadable C-based code examples, you’ll learn how to set up and program every aspect of the graphics pipeline. Step by step, you’ll move from introductory techniques all the way to advanced per-pixel lighting and particle systems. Throughout, you’ll find cutting-edge tips for optimising performance, maximising efficiency with both the API and hardware, and fully leveraging OpenGL ES 3.0 in a wide spectrum of applications.
All code has been built and tested on iOS 7, Android 4.3, Windows (OpenGL ES 3.0 Emulation), and Ubuntu Linux, and the authors demonstrate how to build OpenGL ES code for each platform. - EGL API: communicating with the native windowing system, choosing configurations, and creating rendering contexts and surfaces
- Shaders: creating and attaching shader objects; compiling shaders; checking for compile errors; creating, linking, and querying program objects; and using source shaders and program binaries
- OpenGL ES Shading Language: variables, types, constructors, structures, arrays, attributes, uniform blocks, I/O variables, precision qualifiers, and invariance
- Geometry, vertices, and primitives: inputting geometry into the pipeline, and assembling it into primitives
- 2D/3D, Cubemap, Array texturing: creation, loading, and rendering; texture wrap modes, filtering, and formats; compressed textures, sampler objects, immutable textures, pixel unpack buffer objects, and mipmapping
- Fragment shaders: multitexturing, fog, alpha test, and user clip planes
- Fragment operations: scissor, stencil, and depth tests; multisampling, blending, and dithering
- Framebuffer objects: rendering to offscreen surfaces for advanced effects
- Advanced rendering: per-pixel lighting, environment mapping, particle systems, image post-processing, procedural textures, shadow mapping, terrain, and projective texturing
- Sync objects and fences: synchronizing within host application and GPU execution
Table of Contents:
- Chapter 1: Introduction to OpenGL ES 3.0
- Chapter 2: Hello Triangle: An OpenGL ES 3.0 Example
- Chapter 3: An Introduction to EGL
- Chapter 4: Shaders and Programs
- Chapter 5: OpenGL ES Shading Language
- Chapter 6: Vertex Attributes, Vertex Arrays, and Buffer Objects
- Chapter 7: Primitive Assembly and Rasterization
- Chapter 8: Vertex Shaders
- Chapter 9: Texturing
- Chapter 10: Fragment Shaders
- Chapter 11: Fragment Operations
- Chapter12: Framebuffer Objects
- Chapter 13: Sync Objects and Fences
- Chapter 14: Advanced Programming with OpenGL ES 3.0
- Chapter 15: State Queries
- Chapter 16: OpenGL ES Platforms
- Appendix A: GL_HALF_FLOAT
- Appendix B: Built-In Functions
- Appendix C: ES Framework API
- Index
About the Author :
Dan Ginsburg is founder of Upsample Software, LLC, a software consultancy specializing in 3D graphics and GPU computing. In previous roles he has worked on developing OpenGL drivers, desktop and handheld 3D demos, GPU developer tools, 3D medical visualization and games. He coauthored the OpenCL Programming Guide (Addison-Wesley, 2012).
Budi Purnomo is a senior software architect at Advanced Micro Devices, Inc. where he collaborates with many AMD architects to develop software infrastructure across multiple software stacks and to define future hardware architectures for debugging and profiling GPU applications.
Dave Shreiner is one of the World’s foremost authorities on OpenGL. He is the series editor for the Addison-Wesley OpenGL Series.
Aatab Munshi is the spec editor for the OpenGL ES 1.1 and 2.0 specifications.
Review :
“As a graphics technologist and intense OpenGL ES developer, I can honestly say that if you buy only one book on OpenGL ES 3.0 programming, then this should be the book. Dan and Budirijanto have written a book clearly by programmers for programmers. It is simply required reading for anyone interested in OpenGL ES 3.0. It is informative, well organized, and comprehensive, but best of all practical. You will find yourself reaching for this book over and over again instead of the actual OpenGL ES specification during your programming sessions. I give it my highest recommendation.” –Rick Tewell, Graphics Technology Architect, Freescale
“This book provides outstanding coverage of the latest version of OpenGL ES, with clear, comprehensive explanations and extensive examples. It belongs on the desk of anyone developing mobile applications.”
–Dave Astle, Graphics Tools Lead, Qualcomm Technologies, Inc., and Founder, GameDev.net
“The second edition of OpenGL® ES™ 3.0 Programming Guide provides a solid introduction to OpenGL ES 3.0 specifications, along with a wealth of practical information and examples to help any level of developer begin programming immediately. We’d recommend this guide as a primer on OpenGL ES 3.0 to any of the thousands of developers creating apps for the many mobile and embedded products using our PowerVR Rogue graphics.”
–Kristof Beets, Business Development, Imagination Technologies
“This is a solid OpenGL ES 3.0 reference book. It covers all aspects of the API and will help any developer get familiar with and understand the API, including specifically the new ES 3.0 functionality.”
–Jed Fisher, Managing Partner, 4D Pipeline
“This is a clear and thorough reference for OpenGL ES 3.0, and an excellent presentation of the concepts present in all modern OpenGL programming. This is the guide I’d want by my side when diving into embedded OpenGL.”
–Todd Furlong, President & Principal Engineer, Inv3rsion LLC