OpenGL para sistemas embebidos ( OpenGL ES o GLES ) es un subconjunto [2] de la interfaz de programación de aplicaciones (API) de renderizado de gráficos por computadora OpenGL para renderizar gráficos por computadora en 2D y 3D , como los utilizados por los videojuegos , generalmente acelerados por hardware mediante gráficos unidad de procesamiento (GPU). Está diseñado para sistemas integrados como teléfonos inteligentes , tabletas , consolas de videojuegos y PDA. . OpenGL ES es la "API de gráficos 3D más implementada de la historia". [3]
Autor (es) original (es) | ARB |
---|---|
Desarrollador (es) | Grupo Khronos |
Versión inicial | 28 de julio de 2003 |
Lanzamiento estable | 3.2 [1] / 10 de agosto de 2015 |
Sistema operativo | Multiplataforma |
Plataforma | Multiplataforma |
Tipo | API |
Licencia | Sin cargo, derechos de autor o licencia |
Sitio web | www |
La API es multiplataforma y en varios idiomas . Las bibliotecas GLUT y GLU no están disponibles para OpenGL ES. OpenGL ES está gestionado por el consorcio tecnológico sin ánimo de lucro Khronos Group . Vulkan , una API de próxima generación de Khronos, está diseñada para controladores de alto rendimiento más simples para dispositivos móviles y de escritorio. [4]
Versiones
Actualmente existen varias versiones de la especificación OpenGL ES. OpenGL ES 1.0 se basa en la especificación OpenGL 1.3, OpenGL ES 1.1 se define en relación con la especificación OpenGL 1.5 y OpenGL ES 2.0 se define en relación con la especificación OpenGL 2.0. Esto significa que, por ejemplo, una aplicación escrita para OpenGL ES 1.0 debería ser fácilmente portable al escritorio OpenGL 1.3; Dado que OpenGL ES es una versión reducida de la API, lo contrario puede ser cierto o no, según las características particulares que se utilicen.
OpenGL ES viene con su propia versión de lenguaje de sombreado (OpenGL ES SL), que es diferente de OpenGL SL . [5]
Las versiones 1.0 y 1.1 tienen perfiles comunes (CM) y common lite (CL), con la diferencia de que el perfil common lite solo admite el tipo de datos de punto fijo en lugar de flotante , mientras que Common admite ambos.
OpenGL ES 1.0
OpenGL ES 1.0 se lanzó públicamente el 28 de julio de 2003. OpenGL ES 1.0 se basa en la API de OpenGL 1.3 original, con muchas funciones eliminadas y un poco agregadas. Una diferencia significativa entre OpenGL y OpenGL ES es que OpenGL ES eliminó la necesidad de incluir entre paréntesis las llamadas a la biblioteca OpenGL con glBegin
y glEnd
. Otras diferencias significativas son que la semántica de llamada para funciones de representación primitivas se cambió a favor de matrices de vértices y se introdujeron tipos de datos de punto fijo para coordenadas de vértice. También se agregaron atributos para respaldar mejor las capacidades computacionales de los procesadores integrados, que a menudo carecen de una unidad de punto flotante (FPU). Muchas otras funciones y primitivas de renderizado se eliminaron en la versión 1.0 para producir una interfaz ligera, que incluye:
- primitivas de renderizado de quad y polígono
- punteado de texgen, línea y polígono,
- El modo polígono y el renderizado de polígonos con suavizado no son compatibles, aunque el renderizado con multimuestra es todavía posible (en lugar de fragmentos de borde alfa)
ARB_Image
No se admiten operaciones de clase de píxeles, ni mapas de bits ni texturas 3D,- Se eliminan varios de los modos de dibujo más técnicos, incluido el búfer frontal y el búfer de acumulación. No se permiten las operaciones de mapa de bits, específicamente la copia de píxeles (individualmente), ni los evaluadores, ni las operaciones de selección (de usuario),
- Se eliminan las listas de visualización y la retroalimentación, al igual que las operaciones de inserción y extracción para atributos de estado
- Se eliminaron algunos parámetros de material, incluidos los parámetros de la cara posterior y los planos de recorte definidos por el usuario.
La versión real es 1.0.0.2. [6]
Nombre de extensión | Ordenar # Número | Detalles |
---|---|---|
OES_byte_coordinates | Extensión OpenGL ES n. ° 4 | (anteriormente OpenGL Extension # 291) |
OES_compressed_paletted_texture | Extensión OpenGL ES n. ° 6 | (anteriormente OpenGL Extension # 294) |
OES_fixed_point | Extensión OpenGL ES n. ° 9 | (anteriormente OpenGL Extension # 292) |
OES_query_matrix | Extensión OpenGL ES # 16 | (anteriormente OpenGL Extension # 296) |
OES_read_format | Extensión OpenGL ES n. ° 17 | (anteriormente OpenGL Extension # 295) |
OES_single_precision | Extensión OpenGL ES # 18 | (anteriormente OpenGL Extension # 293) |
Opcional | Mesa (la mayoría de los conductores) | |
OES_compressed_ETC1_RGB8_texture | Extensión OpenGL ES n. ° 5 |
OpenGL ES 1.1
OpenGL ES 1.1 agregó características como soporte obligatorio para múltiples texturas, mejor soporte para múltiples texturas (incluidos combinadores y operaciones de textura de productos de puntos), generación automática de mapas MIP , objetos de búfer de vértice , consultas de estado, planos de recorte de usuario y mayor control sobre la representación de puntos. [7] La versión real es 1.1.12. [8]
Nombre de extensión | Ordenar # Número |
---|---|
OES_draw_texture | Extensión OpenGL ES n. ° 7 |
OES_matrix_get | Extensión OpenGL ES n. ° 11 |
OES_point_size_array | Extensión OpenGL ES # 14 |
OES_point_sprite | Extensión OpenGL ES n. ° 15 |
Opcional | Mesa (todos los conductores) |
OES_EGL_image | Extensión OpenGL ES n. ° 23 |
OES_EGL_image_external | Extensión OpenGL ES # 87 |
OES_required_internalformat | Extensión de OpenGL ES # TBD |
OpenGL ES 2.0
OpenGL ES 2.0 se lanzó al público en marzo de 2007. [9] Se basa aproximadamente en OpenGL 2.0, pero elimina la mayor parte del proceso de renderizado de funciones fijas en favor de uno programable en un movimiento similar a la transición de OpenGL 3.0 a 3.1 . [10] El flujo de control en los sombreadores generalmente se limita a la ramificación directa ya los bucles donde el número máximo de iteraciones se puede determinar fácilmente en tiempo de compilación. [11] Casi todas las características de renderizado de la etapa de transformación e iluminación, como la especificación de materiales y parámetros de luz anteriormente especificados por la API de función fija, son reemplazadas por sombreadores escritos por el programador de gráficos. Como resultado, OpenGL ES 2.0 no es compatible con versiones anteriores de OpenGL ES 1.1. Algunas incompatibilidades entre la versión de escritorio de OpenGL y OpenGL ES 2.0 persistieron hasta OpenGL 4.1, que agregó la GL_ARB_ES2_compatibility
extensión. [12] La versión real es 2.0.25. [13]
El Grupo Khronos ha escrito un documento que describe las diferencias entre OpenGL ES 2.0 y OpenGL 2.0 ordinario. [14]
Nombre de extensión | Ordenar # Número |
---|---|
OES_texture_cube_map | Extensión OpenGL ES n. ° 20 |
OES_texture_npot | Extensión OpenGL ES # 37 |
OES_depth24 | Extensión OpenGL ES n. ° 24 |
OES_depth_texture | Extensión OpenGL ES # 44 |
OES_element_index_uint | Extensión OpenGL ES n. ° 26 |
OES_fbo_render_mipmap | Extensión OpenGL ES n. ° 27 |
OES_get_program_binary | Extensión OpenGL ES # 47 |
OES_mapbuffer | Extensión OpenGL ES # 29 |
OES_packed_depth_stencil | Extensión OpenGL ES # 43 |
OES_rgb8_rgba8 | Extensión OpenGL ES # 30 |
OES_stencil8 | Extensión OpenGL ES # 33 |
OES_vertex_array_object | Extensión OpenGL ES # 71 |
OES_vertex_half_float | Extensión OpenGL ES # 38 |
adicional | en MESA (todos los controladores) |
OES_EGL_image | Extensión OpenGL ES # 23 (diferente para 1.1) |
OES_EGL_image_external | Extensión OpenGL ES # 87 (diferente para 1.1) |
OES_texture_float_linear OES_texture_half_float_linear | Extensión OpenGL ES # 35, extendida en ES 3.0 y 3.1 |
OES_texture_float OES_texture_half_float | Extensión OpenGL ES # 36, extendida en ES 3.0 y 3.1 |
Derivados_estándar_OES | Extensión OpenGL ES # 45 |
OES_surfaceless_context | Extensión OpenGL ES # 116 |
OES_depth_texture_cube_map | Extensión OpenGL ES # 136 |
EXT_texture_filter_anisotropic | Extensión OpenGL ES # 41 |
EXT_texture_type_2_10_10_10_REV | Extensión OpenGL ES # 42 |
EXT_texture_compression_dxt1 | Extensión OpenGL ES # 49 |
EXT_texture_format_BGRA8888 | Extensión OpenGL ES # 51 |
EXT_discard_framebuffer | Extensión OpenGL ES # 64 |
EXT_blend_minmax | Extensión OpenGL ES # 65 |
EXT_read_format_bgra | Extensión OpenGL ES # 66 |
EXT_multi_draw_arrays | Extensión OpenGL ES # 69 |
EXT_frag_depth | Extensión OpenGL ES # 86 |
EXT_unpack_subimage | Extensión OpenGL ES # 90 |
EXT_texture_rg | Extensión OpenGL ES # 103 |
EXT_draw_buffers | Extensión OpenGL ES # 151 |
EXT_compressed_ETC1_RGB8_sub_texture | Extensión OpenGL ES # 188 |
NV_draw_buffers | Extensión OpenGL ES # 91 |
NV_fbo_color_attachments | Extensión OpenGL ES # 92 |
NV_read_buffer | Extensión OpenGL ES # 93 |
NV_read_depth_stencil | Extensión OpenGL ES # 94 |
ANGLE_texture_compression_dxt | Extensión OpenGL ES # 111 |
OpenGL ES 3.0
La especificación OpenGL ES 3.0 [15] se lanzó públicamente en agosto de 2012. [16] OpenGL ES 3.0 es compatible con versiones anteriores de OpenGL ES 2.0, lo que permite que las aplicaciones agreguen gradualmente nuevas características visuales a las aplicaciones. OpenGL 4.3 proporciona compatibilidad total con OpenGL ES 3.0. La versión 3.0 también es la base de WebGL 2.0. [17] Actual es la versión 3.0.6. [18]
La nueva funcionalidad en la especificación OpenGL ES 3.0 incluye:
- múltiples mejoras en la canalización de renderizado para permitir la aceleración de efectos visuales avanzados que incluyen: consultas de oclusión , retroalimentación de transformación , renderizado instanciado y soporte para cuatro o más objetivos de renderizado ,
- Compresión de textura ETC2 / EAC de alta calidad como característica estándar, eliminando la necesidad de un conjunto diferente de texturas para cada plataforma,
- una nueva versión del lenguaje de sombreado GLSL ES [19] con soporte completo para operaciones de punto flotante de 32 bits y enteros ;
- funcionalidad de texturizado muy mejorada que incluye soporte garantizado para texturas de punto flotante , texturas 3D, texturas de profundidad, texturas de vértice, texturas NPOT, texturas R / RG, texturas inmutables, texturas de matriz 2D, swizzles , abrazaderas de nivel LOD y mip , mapas de cubos sin fisuras y objetos de muestra ,
- un extenso conjunto de formatos requeridos de textura y búfer de procesamiento de tamaño explícito , lo que reduce la variabilidad de implementación y facilita mucho la escritura de aplicaciones portátiles.
Nombre de extensión | Ordenar # Número | Detalles |
---|---|---|
KHR_context_flush_control | Extensión OpenGL ES # 191 | (solo para GL_KHR_context_flush_control) |
adicional | en MESA (todos los controladores) | |
OES_texture_compression_astc | Extensión OpenGL ES # 162 | |
EXT_texture_border_clamp | Extensión OpenGL ES # 182 | |
EXT_draw_elements_base_vertex | Extensión OpenGL ES # 204 | |
OES_EGL_image_external_essl3 | Extensión OpenGL ES # 220 | |
MESA_shader_integer_functions | Extensión OpenGL ES # 495 |
OpenGL ES 3.1
La especificación OpenGL ES 3.1 [20] se lanzó públicamente en marzo de 2014. La nueva funcionalidad de OpenGL ES 3.1 incluye: [21]
- Computar sombreadores
- Sombreadores independientes de vértices y fragmentos
- Comandos de dibujo indirectos
OpenGL ES 3.1 es compatible con versiones anteriores de OpenGL ES 2.0 y 3.0, lo que permite que las aplicaciones incorporen nuevas funciones de forma incremental. La versión real es 3.1- (noviembre de 2016). [22]
Nombre de extensión | Ordenar # Número |
---|---|
ARB_arrays_of_arrays | Extensión ARB # 120 |
ARB_compute_shader | Extensión ARB # 122 |
ARB_explicit_uniform_location | Extensión ARB # 128 |
ARB_framebuffer_no_attachments | Extensión ARB # 130 |
ARB_program_interface_query | Extensión ARB # 134 |
ARB_shader_atomic_counters | Extensión ARB # 114 |
ARB_shader_image_load_store | Extensión ARB # 115 |
ARB_shader_storage_buffer_object | Extensión ARB # 137 |
ARB_separate_shader_objects | Extensión ARB # 97 |
ARB_stencil_texturing | Extensión ARB # 138 |
ARB_vertex_attrib_binding | Extensión ARB # 125 |
ARB_draw_indirect | Extensión ARB # 87 |
ARB_shading_language_packing | Extensión ARB # 116 |
ARB_shader_image_size | Extensión ARB # 136 |
ARB_texture_storage_multisample | Extensión ARB # 141 |
ARB_texture_multisample | Extensión ARB # 67 |
EXT_shader_integer_mix | Extensión OpenGL ES # 161 |
Opcional | Mesa (todos los controladores OpenGL ES 3.1+) |
ARB_sample_locations | Extensión ARB # 181 |
OES_texture_view | Extensión OpenGL ES # 218 |
NV_image_formats | Extensión OpenGL ES # 200 |
EXT_render_snorm | Extensión OpenGL ES # 206 |
EXT_texture_norm16 | Extensión OpenGL ES # 207 |
OpenGL ES 3.2
La especificación OpenGL ES 3.2 [23] se lanzó al público en agosto de 2015. Las nuevas capacidades de OpenGL ES 3.2 incluyen:
- Sombreadores de geometría y teselación para procesar de manera eficiente escenas complejas en la GPU.
- Objetivos de renderizado de punto flotante para una mayor flexibilidad en operaciones de cálculo de mayor precisión.
- Compresión ASTC para reducir la huella de memoria y el ancho de banda utilizado para procesar texturas.
- Mezcla mejorada para una composición y manipulación sofisticadas de archivos adjuntos de varios colores.
- Objetivos de textura avanzados, como búferes de textura, matrices 2D multimuestra y matrices de mapas de cubos.
- Funciones de depuración y robustez para un desarrollo de código más sencillo y una ejecución segura.
El estado real es 3.2.6 de julio de 2019. [24] [25]
Nombre de extensión | Ordenar # Número |
---|---|
KHR_blend_equation_advanced | Extensión OpenGL ES # 168 |
EXT_color_buffer_float | Extensión OpenGL ES # 137 |
KHR_debug | Extensión OpenGL ES # 118 |
KHR_robustness | Extensión OpenGL ES # 190 |
OES_copy_image | Extensión OpenGL ES # 208 |
OES_draw_buffers_indexed | Extensión OpenGL ES # 209 |
OES_draw_elements_base_vertex | Extensión OpenGL ES # 219 |
OES_geometry_shader | Extensión OpenGL ES # 210 |
OES_gpu_shader5 | Extensión OpenGL ES # 211 |
OES_sample_shading | Extensión OpenGL ES # 169 |
OES_sample_variables | Extensión OpenGL ES # 170 |
OES_shader_image_atomic | Extensión OpenGL ES # 171 |
OES_shader_io_blocks | Extensión OpenGL ES # 213 |
OES_shader_multisample_interpolation | Extensión OpenGL ES # 172 |
OES_tessellation_shader | Extensión OpenGL ES # 214 |
OES_texture_border_clamp | Extensión OpenGL ES # 215 |
OES_texture_buffer | Extensión OpenGL ES # 216 |
OES_texture_cube_map_array | Extensión OpenGL ES # 217 |
OES_texture_stencil8 | Extensión OpenGL ES # 173 |
OES_texture_storage_multisample_2d_array | Extensión OpenGL ES # 174 |
KHR_texture_compression_astc_ldr | Extensión OpenGL ES # 117 (solo LDR) |
OES_primitive_bounding_box | Extensión OpenGL ES # 212 |
Opcional | Mesa (todos los controladores OpenGL ES 3.2+) |
KHR_texture_compression_astc_hdr | Extensión OpenGL ES # 117 (LDR incluido), Extensión ARB # 118 |
KHR_blend_equation_advanced_coherent | Extensión OpenGL ES # 168 |
KHR_texture_compression_astc_sliced_3d | Extensión OpenGL ES # 249 (Extensión ARB # 189) |
OES_viewport_array | Extensión OpenGL ES # 267 |
Algunas extensiones más están desarrolladas o en desarrollo en Mesa para la próxima versión de OpenGL ES (consulte Mesamatrix).
La API de próxima generación es Vulkan. [26]
Uso de la plataforma
Para obtener una lista completa de empresas y sus productos compatibles, consulte aquí
OpenGL ES 1.0
OpenGL ES 1.0 agregó una API de gráficos 3D oficial a los sistemas operativos Android [27] y Symbian [28] , así como también a QNX [29]. También es compatible con PlayStation 3 como una de sus API de gráficos oficiales [30] ( el otro es la biblioteca libgcm de bajo nivel ) con Cg de Nvidia en lugar de GLSL. [31] La PlayStation 3 también incluye varias características de la versión 2.0 de OpenGL ES.
OpenGL ES 1.1
La versión 1.1 de OpenGL ES es compatible con:
- Android 1.6
- Apple iOS para iPad , iPhone y iPod Touch
- Serie de sistemas operativos BlackBerry 5.0 de RIM [32] (solo BlackBerry Storm 2 , BlackBerry Curve 8530 y los modelos posteriores tienen el hardware necesario [33] )
- BlackBerry PlayBook
- BlackBerry BB10
- Varios teléfonos Nokia como Nokia N95, N93, N93i y N82.
- Palm webOS , con el kit de desarrollo de complementos [34]
- Nintendo 3DS [35]
OpenGL ES 2.0
Apoyado por:
- La plataforma Android desde Android 2.0 hasta NDK y Android 2.2 hasta Java [36]
- AmigaOS en AmigaOne con Warp3D Nova y tarjeta gráfica Radeon HD compatible .
- Apple iOS 5 o posterior en iPad , iPad Mini , iPhone 3GS o posterior y iPod Touch de tercera generación o posterior
- Dispositivos BlackBerry con BlackBerry OS 7.0 y Blackberry 10 , así como BlackBerry PlayBook
- Cliente nativo de Google
- Intel HD Graphics 965G / X3000 y superior (Linux) [37]
- Nvidia (Android), Curie NV40 +: Linux, Windows [38]
- Varios teléfonos Nokia (como Nokia N8 basado en Symbian ^ 3 , Nokia N9 basado en MeeGo y Nokia N900 basado en Maemo [39] )
- Palm webOS , con el kit de desarrollo de complementos [34]
- La consola de Pandora
- La Raspberry Pi
- El odroid
- Varios teléfonos móviles de Samsung (como Wave )
- Navegadores web ( WebGL )
- La consola GCW Zero
- La consola portátil PlayStation Vita
- La PlayStation 4 consola
OpenGL ES 3.0
Apoyado por:
- Android desde la versión 4.3, en dispositivos con hardware y controladores adecuados, que incluyen:
- Nexus 7 (2013)
- Nexus 4
- Nexus 5
- Nexus 10
- HTC Butterfly S
- HTC One / One Max
- LG G2
- LG G Pad 8.3
- La Raspberry Pi 4
- Samsung Galaxy J5
- Samsung Galaxy J5 (2016)
- Samsung Galaxy S4 (versión Snapdragon)
- Samsung Galaxy S5
- Samsung Galaxy Nota 3
- Samsung Galaxy Note 10.1 (edición de 2014)
- Sony Xperia M
- Sony Xperia Z / ZL
- Sony Xperia Z1
- Sony Xperia Z Ultra
- Sony Xperia Tablet Z
- iOS desde la versión 7, en dispositivos que incluyen:
- iPhone 5S [40]
- Ipad aire
- iPad mini con pantalla Retina
- BlackBerry 10 OS desde la versión 10.2, en dispositivos que incluyen:
- BlackBerry Z3
- BlackBerry Z30
- Pasaporte BlackBerry
Compatible con algunas versiones recientes de estas GPU: [41] [42]
- Serie Adreno 300 y 400 ( Android , BlackBerry 10 , Windows10 Windows RT )
- Serie Mali T600 en adelante (Android, Linux , Windows 7)
- PowerVR Series6 ( iOS , Linux)
- Vivante (Android, OS X 10.8.3, Windows 7)
- Nvidia (Android), Tesla G80 +: Linux, Windows 7+
- Intel HD Graphics Sandy Bridge y superior (Linux) [43]
- AMD Terascale y arquitectura GCN real (Windows, Linux)
- LLVMpipe y Softpipe: controladores suaves en Mesa [44]
- VIRGL: controlador virtual para máquinas virtuales en 2018 con Mesa 18.1 (consulte Mesamatrix.net)
OpenGL ES 3.1
Compatible con Windows, Linux, Android (desde la versión 5.0) en dispositivos con hardware y controladores adecuados, [45] que incluyen:
- Serie Adreno 400 [46] [47]
- Serie Adreno 500 (Mesa 18.1 para Linux y Android)
- AMD Terascale y arquitectura GCN real (Windows, Linux (r600, radeonSI))
- Gráficos Intel HD para la serie Intel Atom Z3700 (Android)
- Gráficos Intel HD para las series Intel Celeron N y J (Android)
- Gráficos Intel HD para las series Intel Pentium N y J (Android)
- Intel HD Graphics Haswell y superior (Linux Mesa: Ivy Bridge anterior casi sin texturización de la plantilla) [48]
- Serie Mali T6xx (midgard) en adelante [49] (Android, Linux)
- Nvidia GeForce serie 400 en adelante (Windows, Linux)
- Nvidia Tegra K1 (Android, Linux)
- Nvidia Tegra X1 (Android)
- PowerVR Series 6, 6XE, 6XT, 7XE y 7XT (Linux, Android)
- Serie Vivante GC2000 en adelante (opcional con GC800 y GC1000) [50]
- v3d: Controlador para frambuesa Broadcom ARM en Mesa (Linux)
- VIRGL: controlador virtual para máquinas virtuales en 2018 con Mesa 18.1 (consulte Mesamatrix.net)
- LLVMpipe: controlador de software en Mesa 20.2 (Linux)
- softpipe: controlador de software en Mesa 20.3 (Linux)
- Zink: controlador de emulación en Mesa 21.1 (Linux)
Paquete de extensión de Android
Android Extension Pack (AEP) es un conjunto de extensiones OpenGL ES 3.1, todas empaquetadas en una sola extensión introducida por Google en 2014. Esto permite que las aplicaciones utilicen todas las funciones del conjunto de extensiones, mientras que solo prueban la presencia de un solo uno. El AEP se agregó oficialmente a Android Lollipop para proporcionar características adicionales como teselado sobre lo que estaba oficialmente en la revisión GLES 3.1. La actualización de OpenGL ES 3.2 se compone en gran parte de las adiciones de AEP, que ya están presentes en OpenGL de escritorio. [51]
OpenGL ES 3.2
OpenGL ES 3.2, que incorpora Android Extension Pack (AEP), "cuenta con una pequeña cantidad de mejoras con respecto al OpenGL ES 3.1 del año pasado. Ambos utilizan características similares del AEP. Desde el AEP, el hardware compatible con OpenGL ES 3.2 admitirá Tessellation para detalles de geometría adicional, nuevos sombreadores de geometría, compresión de textura ASTC para una huella de ancho de banda de memoria más pequeña, objetivos de renderizado de punto flotante para procesos de cómputo de alta precisión y nuevas características de depuración para desarrolladores. Estas características de alta gama ya se encuentran en la especificación completa de OpenGL 4 del grupo . " [52] [3]
Compatible con Windows, Linux, Android (desde la versión 6.0 posible, 7.0+ Vulkan 1.0 y OpenGL ES 3.2 necesarios) en dispositivos con hardware y controladores adecuados, que incluyen:
- Adreno 420 y versiones posteriores (Android, Linux (freedreno))
- Arquitectura AMD GCN (Windows, Linux (Mesa 18.2 con radeonSI))
- Intel HD Graphics Skylake y superior (Linux) [53]
- Mali-T760 y más reciente (Android, Linux)
- Nvidia GeForce serie 400 (Fermi) y más reciente (Windows, Linux) [54]
- VIRGL: controlador virtual para máquinas virtuales en 2018 con Mesa 18.1 (consulte Mesamatrix.net)
- LLVMpipe: controlador de software en Mesa 20 (Linux)
Desaprobación en dispositivos Apple
OpenGL ES (y OpenGL) está obsoleto en los sistemas operativos de Apple, pero aún funciona hasta al menos iOS 12. [55]
El futuro
Actualmente no hay ningún plan para una nueva versión central de OpenGL ES, ya que se ha considerado que la adopción de Vulkan lo desplazará en aplicaciones integradas y móviles. El desarrollo de extensiones para OpenGL ES continúa a partir de 2017. [56]
Compatibilidad con OpenGL
Se han creado algunas bibliotecas para emular llamadas OpenGL usando GL ES:
- Nvidia ofrece una biblioteca con licencia BSD de 2 cláusulas llamada Regal, originalmente iniciada por Cass Everitt. Se actualizó por última vez en 2016. [57] Regal es utilizado, por ejemplo, por NaCl de Google . [58]
- El GL4ES con licencia del MIT emula OpenGL 2.1 / 1.5 usando GL ES 2.0 / 1.1. Está basado en glshim. [59]
Ver también
- Direct3D : API de Windows para gráficos 3D de alto rendimiento, con soporte de hardware de aceleración 3D
- DirectX : API de Windows para manejar tareas relacionadas con gráficos y video
- Metal : biblioteca de gráficos 3D acelerados de bajo nivel y alto rendimiento para dispositivos Apple
- OpenSL ES - API para audio en sistemas integrados, desarrollado por Khronos Group
- ANGLE (software) : biblioteca desarrollada por Google para convertir las llamadas OpenGL ES en las de DirectX o Vulkan
Referencias
- ^ "Khronos amplía el alcance del ecosistema estándar abierto 3D" .
- ^ "Descripción general de OpenGL ES" . Grupo Khronos.
- ^ a b "3D Graphics API State of the Union: SIGGRAPH 2015" (PDF) . Khronos .
La industria enviará más de 1.700 millones de dispositivos en 2015
- ^ Hruska, Joel (4 de marzo de 2015). "Aún no muerto: Mantle de AMD impulsa la nueva API de Vulkan, esfuerzos de realidad virtual" . ExtremeTech . Ziff Davis.
- ^ "¿Qué versiones de GLSL puedo usar en OpenGL ES 2.0?" . Desbordamiento de pila.
- ^ https://www.khronos.org/registry/OpenGL/specs/es/1.0/opengles_spec_1_0.pdf
- ^ http://developer.amd.com/wordpress/media/2012/10/GDC06-GLES_Tutorial_Day-Munshi-OpenGLES_Overview.pdf
- ^ https://www.khronos.org/registry/OpenGL/specs/es/1.1/es_full_spec_1.1.pdf
- ^ "Comunicados de prensa de Khronos - OpenGL ES 2.0" . Khronos.org. 2007-03-05. Archivado desde el original el 28 de diciembre de 2010 . Consultado el 23 de diciembre de 2010 .
- ^ Edward Angel, Dave Shreiner, Gráficos por computadora interactivos: un enfoque de arriba hacia abajo con OpenGL basado en sombreadores , sexta edición, p. xxi-xxii, ISBN 978-0-13-254523-5
- ^ "El lenguaje de sombreado de OpenGL® ES" (PDF) . Khronos.org . Consultado el 16 de febrero de 2013 .
- ^ "The OpenGL (R) Graphics System: A Specification (Version 4.1 (Core Profile)" (PDF) . 25 de julio de 2010.
- ^ https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf
- ^ "OpenGL © ES - Especificación de perfil común 2.0.25 (Especificación de diferencia)" (PDF) . 2 de noviembre de 2010.
- ^ "La especificación OpenGL ES 3.0" .
- ^ "Khronos lanza la especificación OpenGL ES 3.0 para llevar gráficos 3D móviles al siguiente nivel" . Khronos.org. 2012-08-06 . Consultado el 6 de agosto de 2012 .
- ^ "Especificación WebGL 2.0" .
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf
- ^ "Páginas de referencia en línea del lenguaje de sombreado de OpenGL ES 3.0" .
- ^ "La especificación OpenGL ES 3.1" .
- ^ "Khronos lanza la especificación OpenGL ES 3.1" . Khronos.org. 2014-03-17 . Consultado el 17 de marzo de 2014 .
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.1/es_spec_3.1.pdf
- ^ "La especificación OpenGL ES 3.2" .
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/es_spec_3.2.pdf
- ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.pdf
- ^ http://www.anandtech.com/show/9038/next-generation-opengl-becomes-vulkan-additional-details-released
- ^ "¿Qué es Android?" .
- ^ "Ficha del producto Symbian OS v9.5" . Symbian. Archivado desde el original el 27 de marzo de 2008.
- ^ "Utilizando OpenGL ES" . Plataforma de desarrollo de software QNX (v6.5.0) . QNX . Consultado el 8 de enero de 2011 .
- ^ "Demostración de OpenGL ES en formato PPT" .
- ^ "Presentación OpenGL ES / PSGL en formato PPT" . Sony . Khronos.
- ^ "Nuevo en esta versión beta" . Notas de la versión: aplicación BlackBerry Java . Investigación en movimiento . Archivado desde el original el 2 de diciembre de 2009 . Consultado el 8 de diciembre de 2009 .
- ^ Koh, Damian (29 de noviembre de 2009). "Qué esperar de los smartphones BlackBerry" . CNET Asia . Archivado desde el original el 13 de diciembre de 2009 . Consultado el 8 de diciembre de 2009 .
- ^ a b "PDK - Resumen" . Centro de desarrolladores de HP Palm. Archivado desde el original el 1 de enero de 2011 . Consultado el 23 de diciembre de 2010 .
- ^ "DMP anuncia PICA 200 compatible con OpenGL ES 1.1 adoptado por Nintendo" . 2010-06-21 . Consultado el 2 de junio de 2013 .
- ^ "Especificaciones de Android 2.2" . 2010-07-01. Archivado desde el original el 11 de octubre de 2010.
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.2.0
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.1.0
- ^ "Software Maemo - Nokia> Computadora móvil Nokia N900> Especificaciones técnicas" . Nokia Corporation. Archivado desde el original el 29 de octubre de 2009 . Consultado el 12 de enero de 2010 .
- ^ "iOS 8 para desarrolladores" . Desarrollador de Apple.
- ^ "Productos conformes a Khronos" .
- ^ Sag, Anshel (11 de abril de 2013). "El estado de OpenGL ES 3.0: quién tiene qué" . Lado brillante de las noticias . Archivado desde el original el 15 de junio de 2013 . Consultado el 22 de diciembre de 2015 .
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.2.0
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.1.0
- ^ "Productos compatibles con OpenGL ES3.1" . Consultado el 11 de agosto de 2014 .
- ^ "Unidades de procesamiento de gráficos Adreno ™" . Qualcomm . Consultado el 11 de agosto de 2014 .
- ^ "¿GL ES 3.1 en Adreno 3xx?" . Consultado el 11 de agosto de 2014 .
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.2.0
- ^ "Arquitectura de Mali Midgard de ARM explorada" . AnandTech . Consultado el 11 de agosto de 2014 .
- ^ "Vivante Vega Cores para 3D" . Vivante . Consultado el 10 de diciembre de 2014 .
- ^ "Khronos estrena OpenGL ES 3.2 y nuevas extensiones GL, pero no Vulkan esta semana" . 10 de agosto de 2015 . Consultado el 11 de agosto de 2015 .
- ^ "OpenGL ES 3.2 y Vulkan: todo lo que necesita saber" . Autoridad de Android . 2015-08-15 . Consultado el 22 de diciembre de 2015 .
- ^ https://people.freedesktop.org/~imirkin/glxinfo/#p=es&v=Mesa%2017.2.0
- ^ "NVIDIA lanza 358,50 controladores listos para el juego para Star Wars Battlefront" . AnandTech . Consultado el 7 de octubre de 2015 .
- ^ Apple Inc. "Novedades en iOS - Desarrollador de Apple" . developer.apple.com . Consultado el 7 de agosto de 2018 .
Las aplicaciones creadas con OpenGL ES seguirán ejecutándose en iOS 12, pero OpenGL ES está obsoleto en iOS 13.
- ^ Khronos. "Vulkan, OpenGL y OpenGL ES" (PDF) . www.khronos.org . Consultado el 24 de abril de 2020 .
- ^ "p3 / regal: Regal para OpenGL" . GitHub.
- ^ McCutchan, John (7 de septiembre de 2012). "En profundidad: Llevando Regal OpenGL a Native Client" . Gamasutra.
- ^ "GL4ES - El controlador OpenGL para GLES Hardware" . GitHub .
Otras lecturas
- Ginsburg, Dan; Purnomo, Budirijanto; Shreiner, Dave; Munshi, Aaftab (2014). Guía de programación de OpenGL ES 3.0 . Addison-Wesley Professional. ISBN 978-0-321-93388-1.
- Pulli, Kari; Aarnio, Tomi; Miettinen, Ville; Roimela, Kimmo y Vaarala, Jani (2007). Gráficos 3D móviles con OpenGL ES y M3G . Morgan Kaufmann. ISBN 978-0-12-373727-4.
- Astle, Dave y Durnil, David (2004). Desarrollo de juegos OpenGL ES . Curso Tecnología PTR. ISBN 1-59200-370-2.
- Pulli, Kari; Aarnio, Tomi; Roimela, Kimmo y Vaarala, Jani. Diseño de interfaces de programación gráfica para dispositivos móviles . IEEE CG&A 2005 . doi : 10.1109 / MCG.2005.129 .
enlaces externos
- Página web oficial
- Seguimiento de errores públicos
- Empresas que cumplen con OpenGL ES
- Foros públicos
- Lista de dispositivos compatibles con OpenGL ES
- Página de inicio de OpenGL
- Emulador OpenGL ES 1.1 y 2.0 de ARM
- Emulador OpenGL ES 3.0 de ARM