OpenGL ES 3.1 Specification Released
The Khronos Group has just released the OpenGL ES 3.1 specification, bringing functionality enhancements to the royalty-free 3D graphics API that is used on nearly all of the world's mobile devices.
OpenGL ES 3.1 provides access to graphics processing unit (GPU) functionality with portability across diverse mobile and embedded operating systems and platforms. The full specification and reference materials are available for immediate download at http://www.khronos.org/registry/gles/.
Khronos will provide OpenGL ES 3.1 demonstrations to the press during a Developer Session at GDC 2014 on Wednesday, March 19th.
Key features of the OpenGL ES 3.1 specification include:
- Compute shaders - The update brings the feature set much closer to that available on 'desktop' APIs like OpenGL and DirectX. Until recently, developers have been limited to an increasingly dated feature set. Now OpenGL ES 3.1 introduces Compute Shaders. Applications will be able to use the GPU to perform general computing tasks, coupled with graphics rendering. Compute shaders are written in the GLSL ES shading language, and can share data with the graphics pipeline;
- Separate shader objects - applications can program the vertex and fragment shader stages of the GPU independently, and can mix and match vertex and fragment programs without an explicit linking step;
- Indirect draw commands - the GPU can be instructed to take draw commands from its memory rather than waiting for commands from the CPU. For example, this allows a compute shader running on the GPU to perform a physics simulation and then generate the draw commands needed to display the results, without CPU intervention;
- Enhanced texturing functionality ? including multisample textures, stencil textures, and texture gather;
- Shading language improvements - new arithmetic and bitfield operations, and features to enable modern styles of shader programming;
- Optional extensions - per-sample shading, advanced blending modes, and more;
- Backward compatibility with OpenGL ES 2.0 and 3.0 - programmers can add ES 3.1 functionality incrementally to working ES 2.0 and 3.0 applications.
On the hardware side, ES 3.1 is designed to be implemented on existing hardware. Khronos says that a number of existing SoC GPUs will be OpenGL ES 3.1 capable. However, both NVIDIA and Imagination Technologies expect to fully support OpenGL ES 3.1 in their Kepler and Rogue architectures respectively.
Intel has been also actively involved with Khronos behind the scenes in the development of the next version of OpenGL ES. At its GDC booth, Intel will be giving a peek at a few game titles taking advantage of the latest API and running on Intel graphics.
The images below show several sample applications using Compute Shaders and other OpenGL ES 3.1 features to do Contact Hardening Shadows, Cloth Physics, and HDR rendering with Bloom effects:
Khronos will provide OpenGL ES 3.1 demonstrations to the press during a Developer Session at GDC 2014 on Wednesday, March 19th.
Key features of the OpenGL ES 3.1 specification include:
- Compute shaders - The update brings the feature set much closer to that available on 'desktop' APIs like OpenGL and DirectX. Until recently, developers have been limited to an increasingly dated feature set. Now OpenGL ES 3.1 introduces Compute Shaders. Applications will be able to use the GPU to perform general computing tasks, coupled with graphics rendering. Compute shaders are written in the GLSL ES shading language, and can share data with the graphics pipeline;
- Separate shader objects - applications can program the vertex and fragment shader stages of the GPU independently, and can mix and match vertex and fragment programs without an explicit linking step;
- Indirect draw commands - the GPU can be instructed to take draw commands from its memory rather than waiting for commands from the CPU. For example, this allows a compute shader running on the GPU to perform a physics simulation and then generate the draw commands needed to display the results, without CPU intervention;
- Enhanced texturing functionality ? including multisample textures, stencil textures, and texture gather;
- Shading language improvements - new arithmetic and bitfield operations, and features to enable modern styles of shader programming;
- Optional extensions - per-sample shading, advanced blending modes, and more;
- Backward compatibility with OpenGL ES 2.0 and 3.0 - programmers can add ES 3.1 functionality incrementally to working ES 2.0 and 3.0 applications.
On the hardware side, ES 3.1 is designed to be implemented on existing hardware. Khronos says that a number of existing SoC GPUs will be OpenGL ES 3.1 capable. However, both NVIDIA and Imagination Technologies expect to fully support OpenGL ES 3.1 in their Kepler and Rogue architectures respectively.
Intel has been also actively involved with Khronos behind the scenes in the development of the next version of OpenGL ES. At its GDC booth, Intel will be giving a peek at a few game titles taking advantage of the latest API and running on Intel graphics.
The images below show several sample applications using Compute Shaders and other OpenGL ES 3.1 features to do Contact Hardening Shadows, Cloth Physics, and HDR rendering with Bloom effects: