web-dev-qa-db-fra.com

Différences entre WebGL et OpenGL

Quelqu'un peut-il me donner une réponse simple sur la différence exacte entre OpenGL et WebGL? J'ai besoin de plus de détails sur les éléments suivants: programmation sémantique, héritage d'API, extensions d'API, etc.

J'ai regardé le site suivant mais ce n'est pas très clair pour moi: http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences

34
Deepak

WebGL est "OpenGL ES 2", pas OpenGL simple (l'ES signifie "pour les systèmes embarqués"). Il y a donc la première différence. OpenGL ES est essentiellement un sous-ensemble d'OpenGL. De plus, WebGL est presque identique à OpenGL ES 2, mais présente quelques différences subtiles, expliquées dans le lien que vous fournissez. Il n'y a pas grand-chose à ajouter à ce lien, c'est une explication assez claire de ce qui est différent entre OpenGL ES 2 et Webgl.

43

OpenGL est une API centrée sur l'ordinateur de bureau (comme Direct3D). WebGL est dérivé d'OpenGL ES 2.0 (destiné aux appareils mobiles) qui a moins de capacités et est plus simple à utiliser.

WebGL est également conçu pour fonctionner dans un navigateur, et présente donc quelques limitations plus qu'OpenGL ES 2.0.

Contrairement à OpenGL, WebGL ne nécessite pas de prise en charge de pilote natif. Un wrapper appelé ANGLE , que Safari, Chrome et Firefox peuvent traduire les appels WebGL et GLSL en OpenGL/GLSL ou Direct3D/HLSL

Veuillez consulter le wiki Khronos pour une réponse détaillée: http://www.khronos.org/webgl/wiki/WebGL_and_OpenGL_Differences

28
Florian Bösch

WebGL est destiné à s'exécuter dans un navigateur (applications Web).

WebGL est une bibliothèque de logiciels qui étend les capacités du langage de programmation JavaScript pour lui permettre de générer des graphiques 3D interactifs dans n'importe quel navigateur Web compatible.
...
Il utilise l'élément HTML5 canvas et est accessible à l'aide des interfaces du modèle d'objet de document. La gestion automatique de la mémoire est fournie dans le cadre du langage JavaScript.


OpenGL est généralement utilisé dans les applications de bureau. Il s'agit d'une spécification multilingue et multiplateforme, dont WebGL est plus ou moins un sous-ensemble.

8
Matt Ball

La définition du consortium ( https://www.khronos.org/webgl/ ) est citée ci-dessous.

WebGL est une norme Web multiplateforme et libre de droits pour une API graphique 3D de bas niveau basée sur OpenGL ES 2.0, exposée via l'élément HTML5 Canvas en tant qu'interface de modèle d'objet de document. Les développeurs familiers avec OpenGL ES 2.0 reconnaîtront WebGL comme une API basée sur Shader utilisant GLSL, avec des constructions sémantiquement similaires à celles de l'API OpenGL ES 2.0 sous-jacente. Il reste très proche de la spécification OpenGL ES 2.0, avec quelques concessions faites pour ce que les développeurs attendent des langages gérés en mémoire tels que JavaScript.

OpenGL et WebGL ont une sémantique similaire mais sont codés dans des langages différents. Vous verrez au niveau de base que la plupart des différences sont dans les constructions de langage de programmation de C/C++ vs JavaScript

WebGL et OpenGL montre les similitudes entre les deux, OpenGL en C/C++ et WebGL en JavaScript.

2
ap-osd