web-dev-qa-db-fra.com

OpenGL ES contre OpenGL

Quelles sont les différences entre OpenGL ES et OpenGL?

81
kml_ckr

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

49
kamaci

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.

42
Bill Yan

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:

  • manque de support de shaders de géométrie
  • pas de mélange min/max (il peut y avoir une extension pour cela)
  • pas de primitive Quad List
  • formats de texture plus restreints (notamment en virgule flottante)
  • glGetTexImage n'est pas disponible
  • il n'y a pas de rétroaction de transformation, même pour plusieurs autres fonctionnalités avancées

Il existe également de nombreuses autres différences, mais cela couvre plusieurs des plus importantes.

33
nullspace

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

6
罗大柚

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.

6
holtavolt

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.

5
writhe

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.

4
user501138

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.

OpenGL - hier et aujourd'hui

3
ap-osd

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é).

3
Matth

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.

2
Steve Wyatt

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).

0
Jafffy

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.

0
pratik_z