OpenGL
Ses utilisations
Son utilisation
L'API OpenGL est très performante, multiplateforme, ouvert et libre d'utilisation.
Grâce à ses qualités, OpenGL a réussi à se vendre dans plusieurs domaines.
Les applications open-sources
Beaucoup d'applications libres - scientifiques, artistiques, ou non - sont développés
pour des systèmes d'exploitations libres (comme Linux). OpenGL est une très
bonne bibliothèque graphique pour ces logiciels graphiques.
Il est toujours possible d'utiliser un même programme, avec OpenGL, sur plusieurs systèmes d'exploitations
différentes (dont Windows), si le langage de programmation utilisé permet le cross-plateform (comme Java)
et si l'application possède les fichiers natifs (dll pour Windows, so pour Linux, etc...) nécessaires
à son exécution (voir la partie sur la "Portabilité" pour plus d'informations à ce sujet).
Exemple 1 : NASA World Wind Java est une application Java qui permet de générer un globe virtuel, en 3D. Le projet est open-source et il offre des fonctionnalités aux développeurs pour inclure le globe virtuel dans d'autres projets libres. Exemple 2 : Blender est un logiciel libre d'animation, de modélisation et de rendu en 3D.
Les jeux vidéos
OpenGL est aussi présent dans les jeux-vidéos. Néanmoins, c'est
la bibliothèque graphique de Microsoft - DirectX - qui est le plus
utilisé dans ce domaine (en partie grâce à ses nombreuses mises à jours).
Comme pour les autres applications, l'argument d'utiliser OpenGL
dans les jeux-vidéos est sa portabilité et ses performances.
Sinon, l'API représente une solution alternative pour
rendre l'application utilisable par les autres systèmes d'exploitation.
Par exemple, une application peut marcher sous Windows avec l'API DirectX,
et sous Mac avec l'API OpenGL (cas des programmes utilisant le moteur Source de Valve).
Exemple 1 : Le moteur id Tech 5 utilise l'API OpenGL (pour des raisons historiques).
Ce moteur a été utilisé pour développer certaines jeux-vidéos comme Quake, Doom, et Wolfenstein.
Exemple 2 : Minecraft est un jeu-vidéo indépendant développé en Java. Il est possible
de jouer à ce jeu sur les systèmes d'exploitation Windows, Linux et Mac, ainsi que sur le site
internet du projet (via un applet).
Les systèmes embarqués et le web
Aujourd'hui, les systèmes embarqués sont de plus en plus puissantes
(dont les téléphones portables), et les besoins en interface graphique (en 3D ou en 2D)
sont présents. La bibliothèque OpenGL ES répond à l'attente des développeurs, en offrant
une API légère (moins gourmande en mémoire et en ressources processeurs) et une simplification
plus poussée, tout en gardant les avantages d'OpenGL (portabilité, performance...).
Du côté du Web, une bibliothèque WebGL a fait son apparition en 2009, qui a pour objectif
d'utiliser l'API OpenGL pour les sites internet.
Exemples : Plusieurs "wallpapers dynamiques" sous Android, dont Galactic Core Live Wallpaper, et la majorité des jeux-vidéo (dont Angry Birds).
![]() |
Les bibliothèques qui implémentent OpenGL
A l'origine, OpenGL a été développé en langage C, pour le langage C. Heureusement, il existe des bibliothèques pour implémenter l'API dans d'autres langages de programmations et d'autres plateformes. Souvent, bibliothèques rajoutent de nouvelles fonctionnalités à l'API).
- Java: JOGL (Java OpenGL), LWJGL (LightWeight Java Game Library), Java 3D...
- Perl: POGL (Perl OpenGL)
- Python: PyOpenGL
- Caml: GLCaml
- Web: WebGL
- C#: The Open Toolkit library (une bibliothèque qui regroupe OpenGL, OpenCL, et OpenAL pour l'audio)
- C: Combinaison d'OpenGL avec la bibliothèque SDL
- ...
En théorie, le code OpenGL est le même pour toutes les bibliothèques. Cependant, il est possible qu'une fonctionnalité d'OpenGL diffère entre deux bibliothèques, mais cette situation reste rare.