Android usa OpenGL ES, ¿cuál es la diferencia entre él y OpenGL?
Android usa OpenGL ES, ¿cuál es la diferencia entre él y OpenGL?
Respuestas:
OpenGL ES (Embedded Systems) es una versión simplificada de OpenGL. Hay muchas diferencias entre esos dos y si desea profundizar en los detalles, puede leer este documento de 128 especificaciones. Pero ES es un subconjunto de OpenGL, por lo que todas las aplicaciones ES funcionan en sistemas que no son ES, pero no al contrario.
No hay un lugar donde pueda definir fácilmente qué está en ES y qué no. Incluso una definición es "OpenGL-ES es como OpenGL, pero sin muchas cosas. Por ejemplo, no hay glBegin o glEnd".
Por desgracia, ninguna de las respuestas hasta ahora es completa y totalmente correcta. Realmente, OpenGL-ES hace dos cosas que OpenGL no hace:
1) se despoja y luego extiende las API de OpenGL para que sea adecuado para una plataforma móvil. Es decir, primero eliminan las API y las características que realmente no necesita, y son una carga para las implementaciones móviles, como la representación de polígonos o el uso de listas de visualización. Luego hace algunas extensiones juiciosas para que sea más útil para la plataforma móvil. Sin embargo, ni siquiera puedo recordar un ejemplo de esto.
2) proporciona la interfaz para el administrador de ventanas (y, por lo tanto, el hardware de gráficos nativo) de la plataforma móvil. Esta parte de OpenGL-ES, conocida como EGL, se parece mucho a GLUT en el escritorio. Excepto que no tiene ninguno de esos métodos de conveniencia que no son estrictamente necesarios para esa interfaz. Por lo tanto, no hay API para dibujar poliedros o esferas (como en GLUT). Pero hay, por ejemplo, API que corresponden a init () de GLUT y a devoluciones de llamada DisplayFunc () y ReshapeFunc ().
Hay dos versiones de OpenGL ES disponibles en Android:
¡Advertencia, OpenGL ES 2.0 no es compatible con OpenGL ES 1.X!
Casi todos los teléfonos Android tienen GPU OpenGL 1.X y la mayoría tiene 2.0. OpenGL ES 2.0 solo está disponible con Android 2.xo posterior.