Guide Conclusion#
This guide should hopefully have given a clearer idea of how an OpenGL ES application renders a primitive to screen, and how the basic concepts of graphics programming and OpenGL ES work in practice.
Here is a brief recap of the concepts covered.
OpenGL ES/ EGL concepts covered#
Display - an EGL object which usually corresponds to a physical screen.
Surface - the render target of the application, most commonly an abstraction of a native window extended with additional buffers such as colour, depth, and stencil buffers.
Configuration - a description of the capabilities of an application and what kind of surface it requires.
Vertices - points in 3D space which are collected together to define polygons.
Buffer Objects - reserved sections of memory which store data for the GPU to use such as uniform buffers and shader storage buffers.
Shaders - programs used within a graphics pipeline which determine how an object is rendered on screen.
Vertex Shaders - shaders that can transform sets of vertices in order to orient them in 3D space, and calculate information that can be interpolated and passed to the fragment shader. The simple example shown in this guide transforms the object’s vertices from object space to screen space, and passes along the texture coordinates to determine its colour.
Fragment Shaders - shaders which determine the final output colour of pixels on screen based on a set of inputs.
Textures - a 2D image which can be sampled by the fragment shader to determine each pixel’s colour.
What to do next#
It is a good idea to try and write a simple Open GL ES application using this guide as a reference. It will provide a deeper understanding than simply reading the example.
It is important to remember that this is only a starting point for developing OpenGL ES applications. The example application shown here is very simple and there are many other OpenGL ES features and rendering techniques which are not covered but are important to know.
The other OpenGL ES examples, included with the PowerVR SDK, are a great way to expand knowledge of OpenGL ES and graphics programming, as well as to see various rendering techniques in action. These examples are also found on the PowerVR GitHub repository.
All of our SDK examples (except HelloAPI used in this guide) make use of the PowerVR Framework, which is included as part of the PowerVR SDK. In particular the PVRUtilsGles module makes many of the steps completed in this tutorial considerably easier and makes it possible to quickly move on to the more interesting stages of development. For an overview of the PowerVR Framework and its modules see the PowerVR Framework Development Guide.
Finally, once confident with using OpenGL ES, consider looking at the Getting Started with Vulkan guide for an introduction to the Vulkan API. Vulkan is considerably more complex than OpenGL ES but is widely seen as the new industry standard API for mobile and embedded devices. Knowledge of Vulkan will become even more valuable over the next few years as the industry transitions from OpenGL ES.