OpenGL ES

OpenGL ES

Información
Desarrollado por Grupo Khronos
Primera versión 28 de julio de 2003
Última versión 3,2 (10 de agosto de 2015)
Medio ambiente Multiplataforma
Tipo Interfaz de programación
Sitio web www.khronos.org/opengles

OpenGL ES ( abierto G raphics El ibrary para E mBedded S istema, a veces abreviado como Ogles o GLES ) es una especificación de Grupo Khronos que define una API multiplataforma para escribir aplicaciones de imágenes 3D deriva especificación OpenGL , en una forma adecuada para móviles o plataformas integradas como teléfonos móviles , asistentes personales (PDA), consolas de videojuegos portátiles , reproductores multimedia de bolsillo o de sala de estar ... La consola de videojuegos PlayStation 3 también utiliza un derivado de OpenGL ES llamado PSGL .

Trascendencia

OpenGL ES es principalmente una simplificación de OpenGL, con dos objetivos: una API más ligera en términos de memoria y costo del procesador, y una mayor simplificación.

Más ligero, porque estas plataformas generalmente no son muy potentes y no tienen mucha RAM. Por tanto, se han abandonado muchas características. Algunas extensiones se han integrado o incluso agregado al perfil predeterminado por ser imprescindibles en estos entornos, otras se han mantenido, la mayoría de ellas eliminadas. Los cálculos se realizan preferiblemente en un punto fijo , porque los procesadores en cuestión sólo raramente tienen una capacidad de cálculo de punto flotante .

Se trata de una simplificación apreciable en cuanto a las especificidades de las plataformas, lo que facilita el trabajo de los desarrolladores. De hecho, un desarrollador 3D clásico debe administrar una o dos consolas y / o un conjunto de tarjetas gráficas de dos o tres fabricantes principales. Un programador de plataformas embebidas debe abordar cientos de móviles diferentes, para una decena de marcas, que se ejecutan bajo tres o cuatro sistemas operativos ( Windows Mobile , Symbian , Android , Brew , Linux , WIPI ...), con tarjetas gráficas de los tres principales proveedores. ( ATI , NVidia , Imagination Technologies ) y pantallas de muy distintas resoluciones, en orientación vertical u horizontal. Por lo tanto, es necesario que pueda especificar sus necesidades y luego dejar que OpenGL ES tome las decisiones internas, al igual que es importante que el software o el renderizado acelerado se controlen de la misma manera.

Algunos navegadores recientes permiten, gracias a WebGL y JavaScript , mostrar contenido 3D de forma nativa en OpenGL ES. Esto abre perspectivas para el desarrollo de juegos 3D en línea.

Diferentes estándares

OpenGL ES ha pasado por cuatro revisiones principales:

Se planeó un estándar 1.2, pero nunca se publicó.

También hay OpenGL ES-SC 1,0 ( OpenGL ES para S eguridad C aplicación ritical), para los militares, la aviación civil o otras aplicaciones tolerantes de ausencia de fallos. La eliminación de funciones lo hace más ligero y seguro.

La especificación OpenGL ES no se beneficia actualmente de un mecanismo de certificación de hardware. Por lo tanto, cualquier producto puede afirmar que es compatible con OpenGL ES sin haber verificado su grado de cumplimiento del estándar. Sin embargo, las implementaciones deben someterse a una serie de pruebas para ser declaradas conformes; de hecho, pocos intentan pasarlo.

Vulkan

El 7 de enero de 2014, Khronos Group anunció inicialmente Vulkan como OpenGL ES Next OpenGL ES Next es el equivalente de OpenGL Next para la serie integrada. Retoma los avances de Gallium3D en la implementación gratuita de Mesa 3D de OpenGL, que demostró con Gallium3D , y en particular LLVMpipe , que era posible tener un rendimiento relativamente correcto con una representación 3D solo por software, siempre que 'un uso más inteligente de la varios recursos disponibles (núcleos, etc.), estos avances también hicieron posible reducir el uso de la CPU cuando estaba presente la aceleración de hardware. Estos avances inspiraron primero la creación de Mantle_ (API)  (en) en AMD , luego las modificaciones en Microsoft con Direct3D 12 y nuevamente Khronos con OpenGL Next. En todos estos casos, se revisa la API y se eliminan de las especificaciones los errores de diseño de versiones anteriores, no adecuados a los avances técnicos y tecnológicos en el hardware.

En última instancia, Vulkan unifica tanto el OpenGL ES integrado como la versión OpenGL de escritorio.

Implementación de software

Material de soporte

Hay varios procesadores gráficos que tienen controladores OpenGL ES.

Problemas

A menudo se observa un problema inesperado durante el desarrollo. Como las plataformas móviles a menudo tienen un ciclo de vida muy corto, los pilotos a menudo se escriben rápidamente y las implementaciones a menudo son deficientes, dejando la mayoría de las extensiones laterales (como la malla ( skinning ) , el mapeo del cubo del entorno o algunas extensiones propietarias como la compresión de textura PVRTC del MBX ), pero también a veces algunas funciones estándar demasiado complejas, como Vertex Buffer Objects.

Muchas aplicaciones están desarrolladas para OpenGL, que tiene un conjunto de instrucciones más grande. Hay algunos intentos de ejecutar aplicaciones OpenGL en OpenGL ES:

enlaces externos


Notas y referencias

  1. "  https://www.khronos.org/news/press/khronos-expands-scope-of-3d-open-standard-ecosystem  "
  2. 2012 SIGGRAPH OpenGL ES BOF
  3. (in) OpenGL ES FRO Siggraph (presentación en PDF del nuevo OpenGL ES 3.0)
  4. (en) "  Especificaciones de OpenGL ES 3.1  " , khronos.org,4 de junio de 2014(consultado el 29 de octubre de 2014 )
  5. (en) "  OpenGL ES Siguiente  " ,7 de enero de 2014(consultado el 8 de enero de 2014 )
  6. (en) Ryan Smith, “  Next Generation OpenGL se convierte en Vulkan: Detalles adicionales Lanzamiento  ” , Anandtech ,3 de marzo de 2015
  7. (en) https://developer.android.com/about/versions/android-2.2.html
  8. David Legrand, "  Durante su conferencia para anunciar el nuevo Nexus 7, Google aprovechó la oportunidad para comenzar a hablar sobre ...  " , en pcinpact.com , Next INpact ,24 de julio de 2013(consultado el 23 de agosto de 2020 ) .
  9. Vivante Graphics Processor IP  " (consultado el 5 de agosto de 2012 )
  10. Emulador OpenGL ES 3.0