OpenGL ES 1.0 and 1.1 - This API specification is supported by Android 1.0 and higher. 固定管线。
OpenGL ES 2.0 - This API specification is supported by Android 2.2 (API level 8) and higher.
2.0 | 1.10 |
对应GLSL 1.10全面支持Shader编程。
OpenGL 2.0 (2004)
Addition | Promoted from |
---|---|
Shader objects | ARB_shader_objects, heavily modified |
Shader programs | ARB_vertex_shader, ARB_fragment_shader, heavily modified |
Shading language 1.10 | ARB_shading_language_100, heavily modified |
Multiple render targets | ARB_draw_buffers |
Non-power-of-two textures | ARB_texture_non_power_of_two |
Point sprites | ARB_point_sprite |
Separate stencil | ATI_separate_stencil, EXT_stencil_two_side |
OpenGL ES 3.0 - This API specification is supported by Android 4.3 (API level 18) and higher.借鉴了OGL 3.2 3.3 OGL4.0-4.3有Shader Mode 4.0-5.0功能。
The OpenGL ES 3.0 specification[10] was
publicly released in August 2012.[11] OpenGL
ES 3.0 is backwards compatible with OpenGL ES 2.0, enabling applications to incrementally add new visual features to applications.
OpenGL 4.3 provides full compatibility with OpenGL ES 3.0.
New functionality in the OpenGL ES 3.0 specification includes:
- multiple enhancements to the rendering
pipeline to enable acceleration of advanced visual effects including: occlusion queries, transform feedback, instanced
rendering and support for four or more rendering targets, - high quality ETC2 / EAC texture
compression as a standard feature, eliminating the need for a different set of textures for
each platform, - a new version of the GLSL ES shading language[12] with
full support for integer and 32-bit floating
point operations; - greatly enhanced texturing functionality including guaranteed
support for floating point textures, 3D textures, depth textures, vertex textures, NPOT textures,
R/RG textures, immutable textures, 2D array textures, swizzles, LOD and mip
level clamps, seamless cube maps and sampler objects, - an extensive set of required, explicitly sized texture and
render-buffer formats, reducing implementation variability and making it much easier to write portable applications.
OpenGL ES 3.1 - This API specification is supported by Android 5.0 (API level 21) and higher.对应OGL 4.4 Shader Mode 5.0功能
Caution: Support of the OpenGL ES 3.0 API on a device requires an implementation of this graphics pipeline provided by the device manufacturer. A device running Android 4.3 or higher may not support the OpenGL ES 3.0 API. For information on checking what
version of OpenGL ES is supported at run time, see Checking OpenGL ES Version.
The OpenGL ES 3.1 specification[13] was
publicly released in March 2014. New functionality in OpenGL ES 3.1 includes:[14]
- Compute shaders
- Independent vertex and fragment shaders
- Indirect
draw commands
OpenGL ES 3.1 is backward compatible with OpenGL ES 2.0 and 3.0, thus enabling applications to incrementally incorporate new features.
OpenGL ES 3.2[edit]应该对应OGL
4.5 Shader Mode 5.0功能
OpenGL ES 3.2 works on the same hardware as OpenGL 3.1. It incorporates Android
Extension Pack (AEP) into it: "OpenGL ES 3.2 boasts a small number of improvements over last year’s OpenGL ES 3.1. Both make use of similar features from the AEP. From the AEP, OpenGL ES 3.2 compliant hardware will support Tessellation for additional geometry
detail, new geometry shaders, ASTC texture compression for a smaller memory bandwidth footprint, floating point render targets for high accuracy compute processes, and new debugging features for developers. These high-end features are already found in the
group’s full OpenGL 4 specification."[36][3]
Supported by:
- Nvidia GeForce 400 series (Fermi) and newer (Windows, Linux)[37]
OpenGL SC 2.0 (planned 2016) and Vulkan/SPIR will converge in a "New Generation API for safety certifiable graphics AND compute".[3]
The OpenGL ES 3.2 specification[15] was
publicly released in August 2015. New capabilities in OpenGL ES 3.2 include:
- Geometry and tessellation shaders to efficiently process complex scenes on the GPU.
- Floating point render targets for increased flexibility in higher precision compute operations.
- ASTC
compression to reduce the memory footprint and bandwidth used to process textures. - Enhanced blending for sophisticated compositing and handling of multiple color attachments.
- Advanced texture targets such as texture buffers, multisample 2D array and cube map arrays.
- Debug and robustness features for easier code development and secure execution.
更多见:https://en.wikipedia.org/wiki/OpenGL_ES