Android utilise OpenGL ES, quelle est la différence entre celui-ci et OpenGL?
Android utilise OpenGL ES, quelle est la différence entre celui-ci et OpenGL?
Réponses:
OpenGL ES (Embedded Systems) est une version allégée d'OpenGL. Il y a beaucoup de différences entre ces deux et si vous voulez entrer dans les détails, vous pouvez lire ce document de spécification 128. Mais ES est un sous-ensemble d'OpenGL, donc toutes les applications ES fonctionnent sur des systèmes non ES mais pas l'inverse.
Il n'y a pas un seul endroit où vous pouvez facilement définir ce qui est dans ES et ce qui ne l'est pas. Une seule définition est "OpenGL-ES est exactement comme OpenGL, mais sans beaucoup de choses. Par exemple, il n'y a pas de glBegin ou de glEnd."
Hélas, aucune des réponses à ce jour n'est à la fois complète et parfaitement correcte. Vraiment, OpenGL-ES fait deux choses que OpenGL ne fait pas:
1) il supprime puis étend les API OpenGL pour le rendre adapté à une plate-forme mobile. En d'autres termes, ils suppriment les API et les fonctionnalités dont vous n'avez vraiment pas besoin et sont lourds pour les implémentations mobiles, telles que le rendu de polygones ou l'utilisation de listes d'affichage. Ensuite, il fait quelques extensions judicieuses pour le rendre plus utile pour la plate-forme mobile. Je ne me souviens même pas d'un exemple de cela, cependant.
2) il fournit l'interface au gestionnaire de fenêtres (et donc au matériel graphique natif) de la plateforme mobile. Cette partie d'OpenGL-ES, connue sous le nom d'EGL, ressemble beaucoup à GLUT sur le bureau. Sauf qu'il n'a aucune de ces méthodes pratiques qui ne sont pas strictement nécessaires pour cette interface. Il n'y a donc pas d'API pour dessiner des polyèdres ou des sphères (comme dans GLUT). Mais il existe, par exemple, des API qui correspondent aux init () de GLUT, et aux rappels DisplayFunc () et ReshapeFunc ().
Il existe deux versions d'OpenGL ES disponibles sur Android:
Attention, OpenGL ES 2.0 n'est pas compatible avec OpenGL ES 1.X!
Presque tous les téléphones Android ont un GPU OpenGL 1.X et la plupart ont 2.0. OpenGL ES 2.0 n'est disponible qu'avec Android 2.x ou plus récent.