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."
ES n'est pas un sous-ensemble d'OpenGL, donc votre affirmation selon laquelle toutes les applications ES fonctionnent sur des systèmes non ES n'est pas vraie.
Jari Komppa
5
@JariKomppa - C'est à partir d'OpenGL 4.1.
DMan
Un bon résumé des changements / différences serait bien.
bobobobo
19
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 ().
EGL ne fait pas partie d'OpenGL ES. C'est sa propre chose séparée. Voir les spécifications. Il ne fait pas partie de OpenGL ES et est à peine mentionné nécessaire , sauf pour dire qu'il pourrait existe sur votre système mais sinon la mise en place d' une fenêtre , etc. est en dehors de la portée de l'OpenGL ES de
gman
7
Il existe deux versions d'OpenGL ES disponibles sur Android:
OpenGL ES 1.x (1.0 ou 1.1): un sous-ensemble d'OpenGL 1.5 sans commandes immédiates
pas de glBegin / glEnd
pas de support Quad ou Polygon
OpenGL ES 2.0: un sous-ensemble d'OpenGL 3.X sans pipeline fixe
vertex shaders
shaders de fragments
les shaders de géométrie ne sont pas disponibles
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.
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."
la source
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 ().
la source
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.
la source