OpenGL ES 3.0 in Android/iOS

Chapter 1

  1. Introduction
  2. Programming shaders in OpenGL ES shading language 3.0
  3. Loading and compiling a shader program
  4. Linking a shader program
  5. Checking errors in OpenGL ES 3.0
  6. Using the per-vertex attribute to send data to a shader
  7. Using uniform variables to send data to a shader
  8. Programming OpenGL ES 3.0 Hello World Triangle
  9. Using JNI on Android to communicate with C/C++
  10. Developing an Android OpenGL ES 3.0 application
  11. Developing an iOS OpenGL ES 3.0 application

  1. Building prototypes using the GLPI framework
  2. Implementing touch events
  3. Rendering primitives with vertex arrays
  4. Drawing APIs in OpenGL ES 3.0
  5. Efficient rendering with Vertex Buffer Objects
  6. Transformations with the model, view, and projection analogies
  7. Understanding the projection system in GLPI
  8. Culling in OpenGL ES 3.0
  9. Depth testing in OpenGL ES 3.0

OpenGL ES 3.0 Essentials

Chapter 2

New Features of OpenGL ES 3.0

Chapter 3

  1. Introduction
  2. Managing variable attributes with qualifiers
  3. Grouping uniforms and creating buffer objects
  4. Managing VBO with Vertex Array Objects
  5. Reading and writing buffer objects with mapping
  6. Rendering multiple objects with geometry instancing
  7. Rendering multiple primitives with primitive restart

  1. Introduction
  2.  Creating polygon meshes with Blender
  3. Rendering the wavefront OBJ mesh model
  4. Rendering the 3Ds mesh model

Working with Meshes

Chapter 4

Light and Materials

Chapter 5

  1. Introduction
  2.  Implementing the per-vertex ambient light component
  3. Implementing the per-vertex diffuse light component
  4. Implementing the per-vertex specular light component
  5. Optimizing the specular light with the halfway vector
  6. Gouraud shading – the per-vertex shading technique
  7. Phong shading – the per-fragment shading technique
  8. Implementing directional and point light
  9. Implementing multiple lights in a scene
  10. Implementing two-side shading

  1. Introduction
  2. Implementing the wobble and ripple effect
  3. Procedural texture shading with object coordinates
  4. Creating a circular pattern and making them revolve
  5. Generating the brick pattern
  6. Generating the polka dot pattern
  7. Discarding fragments
  8. Procedural texture shading with texture coordinates

Working with Shaders

Chapter 6

Textures and Mapping Techniques

Chapter 7

  1. Introduction
  2. Applying texture with UV mapping
  3. Efficient rendering with ETC2 compressed texture format
  4. Applying multiple textures
  5. Implementing Skybox with seamless cube mapping
  6. Implementing reflection and refraction with environment mapping
  7. Implementing render to texture with Frame Buffer Objects
  8. Implementing terrain with displacement mapping
  9. Implementing bump mapping

  1. Introduction
  2. Font rendering with the FreeType project
  3. Rendering different languages with Harfbuzz
  4. Rendering text on Head Up Display

Font Rendering

Chapter 8

Postscreen Processing and Image Effects

Chapter 9

  1. Introduction
  2. Detecting scene edges with the Sobel operator
  3. Making the scene blur with the Gaussian blur equation
  4. Making a scene glow real time with the bloom effect
  5. Painting the scene like a cartoon shading
  6. Generating an emboss scene
  7. Implementing grayscale and CMYK conversions
  8. Implementing fish eye with barrel distortion
  9. Implementing a binocular view with procedural texturing
  10. Twirling the image
  11. Sphere illusion with textured quadrilatera

  1. Introduction
  2. Implementing the first scene using a scene graph
  3. Adding local and relative transformations
  4. Adding parent-child support in the scene graph
  5. Creating complex models with a transformation graph
  6. Implementing picking with the ray trace technique
  7. Implementing 2D textured button widgets
  8. Navigating a scene with a camera system
  9. Implementing a scene with multiple views

Scene Management with Scene Graphs

Chapter 10

Anti-aliasing Techniques

Chapter 11

  1. Introduction
  2. Implementing fast approximate anti-aliasing
  3. Implementing adaptive anti-aliasing
  4. Implementing the antialiased circle geometry

  1. Introduction
  2. Creating shadows with shadow mapping
  3. Softening shadow edges using PCF
  4. Using variance shadow mapping
  5. Simulating the particle system
  6. Transform feedback particle system with sync objects and fences

Real-time Shadows and Particle System

Chapter 12


"Write once, use anywhere" is truly the power behind OpenGL ES and has made it an embedded industry standard. The library provides cutting-edge, easy-to-use features to build a wide range of applications in the gaming, simulation, augmented-reality, image-processing, and geospatial domains.

The book starts by providing you with all the necessary OpenGL ES 3.0 setup guidelines on iOS and Android platforms. You'll go on to master the fundamentals of modern 3D graphics, such as drawing APIs, transformations, buffer objects, the model-view-project analogy, and much more. The book goes on to deal with advanced topics and offers a wide range of recipes on the light shading, real-time rendering techniques with static and procedure textures to create stunning visualizations and runtime effects.