Quelles sont les différences entre OpenGL ES et OpenGL?
Deux des différences les plus importantes entre OpenGL ES et OpenGL sont la suppression de la sémantique d'appel glBegin ... glEnd pour le rendu primitif (en faveur des tableaux de sommets) et l'introduction de types de données à virgule fixe pour les coordonnées et les attributs des sommets afin de mieux prendre en charge les capacités de calcul des processeurs embarqués, qui manquent souvent d'un FPU
Jetez un œil ici: OpenGL_ES
OpenGL ES est l'api opengl pour les systèmes embarqués. Il est plus simple que opengl normal en termes de nombre de fonctions api, mais peut être plus difficile à utiliser, car vous devrez utiliser des tampons de vertex et écrire plus de shaders.
Lorsque vous utilisez un opengl normal, vous pouvez utiliser glBegin et glEnd pour entourer les primitives de géométrie que vous devez dessiner, mais lorsque vous utilisez Opengl ES, vous devrez utiliser des tampons de vertex. Je suppose que c'est pour des problèmes de performances.
Actuellement, il existe deux versions d'Opengl ES, la version 1.1 ne peut prendre en charge que le pipeline de rendu fixe, tandis que la version 2.0 prend en charge le shader glsl. Cependant, il n'a pas de pipeline de rendu fixe. Dans un autre Word, vous devrez écrire votre propre shader pour tout.
Opengl ES est principalement utilisé sur les téléphones portables et le web (webgl). Selon les spécifications, votre pilote opengl de bureau peut prendre en charge tous les opengl es apis.
Tout comme pour ajouter qu'OpenGL 3.3 et OpenGL ES 2.0 sont principalement interopérables, en utilisant un sous-ensemble des fonctionnalités d'OpenGL 3.3. Mon moteur C++ personnalisé utilise les mêmes appels d'API, avec quelques définitions, pour Android/IOS/Windows/OSX/Linux.
Parmi les principales différences figurent:
Il existe également de nombreuses autres différences, mais cela couvre plusieurs des plus importantes.
OpenGL ES signifie Open Graphics Library for Embedded Systems (OpenGL ES ou GLES) est un sous-ensemble de l'interface de programmation d'application de rendu graphique (API) OpenGL pour le rendu de graphiques informatiques 2D et 3D tels que ceux utilisés par les jeux vidéo, généralement accélérés par le matériel en utilisant une unité de traitement graphique (GPU). Il est conçu pour les systèmes embarqués comme les smartphones, les tablettes informatiques, les consoles de jeux vidéo et les PDA.
Le site officiel d'OpenGL | ES: http://www.opengl.org/
vous pouvez également obtenir plus d'informations sur wiki: http://en.wikipedia.org/wiki/OpenGL_ES
Consultez la présentation d'OpenGL ES ici: http://www.khronos.org/opengles/
En bref, ES est un sous-ensemble d'Open GL pour les "systèmes embarqués". Les différences spécifiques dépendront des versions et des ensembles de fonctionnalités que vous comparez.
Le registre OpenGL ES contient des différences d'API détaillées entre OpenGL ES et la version correspondante d'OpenGL:
Cependant, il n'y a pas de document contenant les différences pour OpenGL ES 3.0.
Je pense que vous obtiendrez une meilleure réponse si vous demandez "quelles sont les différences entre OpenGL et OpenGL ES".
Il existe de profondes différences entre OpenGL ES 1.1 et ES 2.0, OpenGL 1.5 et 2.0 et OpenGL 3.0 et 4.0.
Comme d'autres l'ont décrit, ES a été écrit pour les systèmes embarqués. Il représente également le premier "nettoyage de la maison" de la spécification GL depuis sa création. OpenGL avait a) de nombreuses façons de faire la même chose (par exemple, vous pouvez dessiner un quad/rect de deux manières différentes et blit une image pixel de deux manières différentes, etc.). ES est plus simple qu'OpenGL avec moins de fonctionnalités en général car il est conçu pour un matériel moins sophistiqué.
Je vous exhorte à ne pas regarder OpenGL ES 1.1 car il appartient au passé et ne représente pas la façon dont OpenGL ou OpenGL ES évolueront architecturalement à l'avenir.
La terminologie et les versions sont assez déroutantes (surtout pour les débutants). Voici un lien qui donne un aperçu assez bien. Voyez si cela aide.
La principale différence entre les deux est qu'OpenGL ES est conçu pour les systèmes embarqués comme les smartphones, tandis qu'OpenGL est celui sur les ordinateurs de bureau. Au niveau du codage, OpenGL ES ne prend pas en charge les fonctions à fonction fixe comme glBegin/glEnd etc ... OpenGL peut prendre en charge le pipeline à fonction fixe (en utilisant un profil de compatibilité).
La réponse moderne, pour ES 3.0 par rapport à OpenGL 4.6, est très différente de la réponse acceptée. Maintenant, tout ce qui concerne le pipeline fixe a disparu.
ES, pour EMBEDDED SYSTEMS, est beaucoup moins robuste.
OpenGL est une API graphique 2D et 3D apportant des milliers d'applications à une grande variété de plates-formes informatiques.
OpenGL ES est un sous-ensemble bien défini d'OpenGL de bureau.
OpenGL® ES est une API multiplateforme sans redevance pour les graphiques 2D et 3D complets sur les systèmes embarqués - y compris les consoles, les téléphones, les appareils et les véhicules. Il se compose de sous-ensembles bien définis d'OpenGL de bureau, ...
Voir ceci lien .
P.S.
WebGL partage les spécifications avec OpenGL ES, c'est-à-dire que si vous avez appris OpenGL de bureau, il est simple d'apprendre les autres (OpenGL ES, WebGL).
simplement, opengl est une version de bureau et opengl est pour des systèmes embarqués comme les téléphones portables où il y a plus de contraintes de mémoire et de performances que celles des ordinateurs. opengl es serait plus difficile à utiliser.