OpenGL ES

From air
Jump to navigation Jump to search

Résumé

Au début du 21ème siècle, avec l'émergence de multiples plateformes mobiles nécessitant de hautes capacités graphiques 2D et 3D est apparue la nécessité d'une API graphique mobile standardisée. Issue d'OpenGL, l'API graphique ouverte et libre pour les applications de bureau, OpenGL ES (Embedded System) est une version allégée d'OpenGL destinée à fonctionner sur des dispositifs contraints.

Les premières versions de l'API, OpenGL ES 1.0 et 1.1, ont été construit sur OpenGL 1.3 et 1.5 respectivement et ont hérité du pipeline à fonction fixe. La dernière itération datant de 2007, OpenGL ES 2.0, utilise maintenant le pipeline programmable plus moderne et donnant plus de pouvoir aux programmeurs lors du développement graphique de leurs applications.

OpenGL ES 2.0 est disponible dans la plupart des plateformes mobiles récentes comme Android, iOS et Windows Mobile et est aussi au cœur de la technologie WebGL.

Mots clés : OpenGL, OpenGL ES, pipeline graphique, 3D, mobile

Abstract

At the beginning of the 21st century with the emergence of multiple mobile plateforms where high 2D and 3D graphics capabilities were needed a new industry standard was created. Stemming from OpenGL, the open and free graphics API for desktop applications, OpenGL ES(Embedded System) is a lightweight version of the API meant to run on constrained devices.

The first iterations of the API, OpenGL ES 1.0 and 1.1, were built upon OpenGL 1 and inherited its fixed function pipeline. The last iteration as of 2007, OpenGL ES 2.0, now uses the more modern programmable pipeline which gives more power to programmers in the graphic development of their applications.

OpenGL ES 2.0 is available in most recent mobile plateforms such as Android, iOS and Windows Mobile and is also at the core of the WebGL technology.

Key words : OpenGL, OpenGL ES, graphics pipeline, 3D, mobile

Contexte

L'apparition depuis 2007 sur le marché d'appareils mobiles dotés de GPUs mobiles dédiés tel que le PowerVR SGX d'Imagination Technologies ou l'Adreno de Qualcomm a permis aux développeurs d'applications mobiles d'utiliser des graphiques 2D et 3D jusque-là réservés aux ordinateurs de bureau. Les premiers avantages se retrouvent d'abord dans les jeux vidéos proposés sur mobile qui apportent de plus en plus la composante 3D. De nouvelles applications tirant parti d'une API graphique puissante sont apparues sur les plate-formes mobiles tel que les applications de réalité augmentée (Face Tracking par exemple).

Les plate-formes mobiles sont nombreuses avec comme acteurs majeurs du marché des smartphones et tablettes tactiles Android de Google, iOS d'Apple, Windows Phone de Microsoft, et BlackBerry de RIM entre autres. Néanmoins grâce à la standardisation apportée par OpenGL ES chacune de ces plate-formes partagent un environnement de développement pour graphiques 2D/3D basé sur une implémentation d'OpenGL ES ce qui facilite le portage des applications entre ces plate-formes et permet de fortement rentabiliser une formation sur OpenGL ES.

Le pipeline graphique programmable

L'API OpenGL ES 2.0 est basée sur OpenGL 2 et en hérite l'utilisation d'un pipeline graphique programmable pour le traitement et l'affichage de primitives graphiques.

Les élèments programmables du pipeline sont des Shaders (ombrage). Ils sont exécutés sur le GPU à différents stages du traitement et sont programmés avec le langage GLSL (Graphic Library Shading Language) défini avec OpenGL. OpenGL ES 2.0 comporte deux styles de shaders, les vertex (sommets) shaders qui manipulent les primitives 3D (des sommets de coordonnées spatiales x y z) et les fragment shaders, aussi appelé pixel shaders, qui calculent la couleur de chaque pixel affiché.

Développer avec OpenGL ES 2.0

Portabilité

Sources