Speaking at SIGGRAPH 2012, a yearly computer graphics convention featuring some of the most prominent names in the business, Khronos unveiled updates for several key OpenGL properties including the specs for Open GL ES 3.0. OpenGL ES is the primary graphics API for mobile device platforms, including Android and iOS. As you would expect, the updates are rather technical, but here's an overview of what we can expect in the future.
Much Better Texture Compression
Perhaps the biggest noticeable change in this iteration is that texture compression has been improved, and the spec now has required support for the ETC texture compression format. While most devices have had support for this format for a while, not all do. This meant that developers that wanted to be thorough in supporting as many devices as possible would be required to include textures in more than one format in their apks. This drives up the size of the app, taking up your storage space faster. By making ETC standard, developers can know that if a device supports OpenGL ES 3.0, it supports the ETC texture pack. The tangible difference won't be all that great in the short-term, but it does give us a nice baseline as we prepare for the future.
It is worth noting that ETC is rather dated at this point and is likely to be inadequate in the long-term, which is why Khronos is also adding in optional support for Adaptive Scalable Texture Compression (ASTC) for a more long-term solution. This texture compression method offers significant advantages over its current counterparts like ETC. At the moment, though, ASTC still has to undergo a considerable amount of testing and become adopted more widely before it will be a useful alternative (hence the need for ETC in the interim). Essentially, ASTC will be in the position that ETC is in version 2.0: it's not a requirement of the spec, but developers can reasonably rely on it being supported. The takeaway for developers, in short, is that powerful, low-bandwidth, royalty-free texture compression is on the way.
Improved Compatibility With Desktops
Another of the major improvements with the advent of OpenGL ES 3.0 is that a number of features of the desktop counterpart, OpenGL 4.3, have been brought over to the mobile world. It's not a complete feature set—geometry shaders, for example, are absent—but the base of features available to mobile developer is growing more closely in line with what desktop developers can take advantage of now.
More important than that, though, is that OpenGL ES 3.0 will now be a complete subset of OpenGL 4.3 for desktops. What this means is that if you do all of your graphics coding within OpenGL ES 3.0, that code will be perfectly compatible with OpenGL 4.3 on a desktop. Developers will still have to code the rest of their app (game mechanics, UI, AI, etc.) for the the desktop, but the OpenGL work will be done already.
Of course, the obvious benefit is that games can now be faster, look better, and run longer. OpenGL ES 3.0 brings improvements that will help reduce battery consumption. This, in particular, will be a welcome addition. So far the only thing that has managed to cause my Nexus 7's battery to die before the end of the day is prolonged gaming.
In terms of hardware adoption, this transition should also happen more quickly than the previous iteration of OpenGL ES. Version 3.0 will be perfectly backwards compatible with 2.0. So, developers won't need to update the OpenGL-related components of their apps to maintain compatibility. Always a nice thing.
Additionally, OpenGL ES 3.0-compatible hardware is already on its way. When the previous 2.0 spec was announced, it was nearly 2 years later before hardware arrived that could make use of the new APIs. This time around, however, SoCs like the quad-core Snapdragon S4 Pro (APQ8064) that are already compatible with ES 3.0 are already nearing production and could arrive as early as this year. Thank Khronos for working more closely with hardware manufacturers this time around. Also, Rightware will be releasing its new OpenGL ES 3.0-compatible benchmarking app very soon. Handy, that.
All in all, it's a solid update to an already-powerful graphics platform that will only make gaming better on your devices from here on out. If you're a developer, you can peruse the new Open GL ES 3.0 spec here to see what's new for you.
Thanks Marcus for helping with research on this article.