Quelles sont les différences entre OpenGL ES et OpenGL?
Quelles sont les différences entre OpenGL ES et OpenGL?
Réponses:
Deux des différences les plus significatives 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 de sommets et les attributs pour une meilleure prise en charge les capacités de calcul des processeurs embarqués, souvent dépourvus de FPU
Jetez un œil ici: OpenGL_ES
OpenGL ES est l'API opengl pour les systèmes embarqués. Il est plus simple que l'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 géométriques 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 performance.
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. En d'autres termes, vous devrez écrire votre propre shader pour tout.
Opengl ES est principalement utilisé sur les téléphones portables et sur le Web (webgl). Selon les spécifications, le pilote opengl de votre bureau peut prendre en charge toutes les apis opengl es.
Je voudrais juste ajouter qu'OpenGL 3.3 et OpenGL ES 2.0 sont pour la plupart 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 (API) de rendu d'infographie OpenGL pour le rendu d'infographie 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 tels que 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 le 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 domestique» de la spécification GL depuis sa création. OpenGL avait a) plusieurs façons de faire la même chose (par exemple, vous pouviez dessiner un quad / rect de deux façons différentes et blit une image pixel de deux façons différentes, etc.). ES est plus simple qu'OpenGL avec moins de fonctionnalités en général car il est conçu pour du 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 manière dont OpenGL ou OpenGL ES évolue sur le plan architectural dans le futur.
La terminologie et les versions sont assez déroutantes (surtout pour les débutants). Pour une vue plus holistique sur OpenGL et OpenGL-ES (GLES), consultez OpenGL - Hier et aujourd'hui .
La principale différence entre les deux est qu'OpenGL ES est conçu pour les systèmes embarqués tels que les smartphones, tandis qu'OpenGL est celui des 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 bien différente de la réponse acceptée. Maintenant, tout le matériel de pipeline fixe a disparu.
ES, pour EMBEDDED SYSTEMS, est beaucoup moins robuste.
OpenGL ES est simplement l'API OpenGL pour les systèmes embarqués (OpenGL ES fait référence à OpenGL Embedded Systems). c'est donc un sous-ensemble d'OpenGL et largement utilisé dans les téléphones portables et certains systèmes de réalité virtuelle, il est conçu pour du matériel moins sophistiqué. OpenGL ES a moins de termes et de fonctions qu'OpenGL, pensez-y comme: vous prenez juste ce dont vous avez besoin pour ce système parce que si nous n'avons pas besoin d'une fonction dans son ensemble, notre travail ou le matériel ne peut pas le gérer, donc pas besoin d'ajouter cette fonction, mais en cela, rend l'utilisation de cette API plus difficile en raison de la nécessité d'écrire plus de shaders et de codes compliqués pour faire quelque chose de simple car OpenGL ES ne fournit pas de shaders dans le pipeline graphique en tant qu'OpenGL. la dernière version d'OpenGL ES est la 3.2, elle peut désormais fournir un support Tessellation pour des détails de géométrie supplémentaires, de nouveaux shaders de géométrie. Je vous conseille donc de commencer à apprendre ou à utiliser OpenGL ES 3.0+ (au cas où c'est votre langue cible) car maintenant et la prochaine génération n'utilisera pas les anciennes versions avec du matériel et des cartes graphiques plus puissants et si votre cible est OpenGL, commencez par la v3. 3+ ou 4.0+. si vous avez plus de temps pas de problème pour faire un aperçu rapide des anciennes versions pour mieux comprendre comment les choses ont été développées et pourquoi. vous pouvez consulter ce lien pour plus de détails:https://en.wikipedia.org/wiki/OpenGL_ES
OpenGL est une API graphique 2D et 3D apportant des milliers d'applications à une grande variété de plates-formes informatiques.
OpenGL ES est des sous - ensembles bien définis d'OpenGL de bureau.
OpenGL® ES est une API multiplateforme libre de droits 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 ce lien .
PS
WebGL partage la spécification avec OpenGL ES, c'est-à-dire que si vous avez appris OpenGL de bureau, il est simple d'apprendre les autres (OpenGL ES, WebGL).