The OpenGL ES 3.0 specification was publicly released at Siggraph this year – coinciding with OpenGL’s 20th anniversary. OpenGL ES 3.0 is backwards compatible with OpenGL ES 2.0, enabling applications to incrementally add new visual features to applications.
OpenGL ES is starting to become the graphics API of choice on a majority of platforms – running on everything from phones and tablets, embedded systems, to desktops. Linux, iOS, Android, even Windows can all run OpenGL ES (assuming there are drivers provided). I think this is surprising to most folks that OpenGL runs on Windows – but all you need are drivers, and Nvidia, AMD, and Intel all provide OpenGL drivers for most of their video cards when you install the DirectX drivers for them. What’s not too surprising is that along with the desktop OpenGL drivers OpenGL ES drivers are usually installed as well. Since OpenGL ES is (mostly) a subset of OpenGL, but ES is there most of the action is in innovation, you can now usually use your desktop (Windows or Linux) to develop OpenGL ES apps and have code that mostly ready to run on Android or iOS as well – at least from a graphics standoint.
Some of the new functionality in OpenGL ES 3.0 includes:
- A collection of required, explicitly sized texture and render-buffer formats, standardizing implementation variability and making it easier to write portable applications.
- Enhanced texturing functionality including; floating point textures, swizzles, 3D textures, 2D array textures, LOD and mip level clamps, seamless cube maps, immutable textures, depth textures, vertex textures, NPOT textures, R/RG textures and sampler objects. Required ETC2 and EAC texture compression format support.
- Enhancements to the rendering pipeline for support of advanced visual effects including: occlusion queries, transform feedback, instanced rendering and support for four or more rendering targets
- Enhanced GLSL support that now included 32-bit float operations.
You can read more about it here.