OpenGL ES


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 de computadora en 2D y 3D , como los que se utilizan en los videojuegos , normalmente 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 en la historia". [3]

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]

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 simplificada 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]

Tanto la versión 1.0 como la 1.1 tienen perfiles comunes (CM) y common lite (CL), con la diferencia de que el perfil common lite solo admite soporte de tipo de datos de punto fijo en lugar de punto flotante , mientras que Common admite ambos.

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 glBeginy 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 liviana, que incluye: