OpenGL : Tour savoir de cette technologie graphique

-
3
 m de lecture
-

Programmer une application graphique est fortement simplifiĂ© si l’on passe par OpenGL, car alors, vous pouvez disposer d’un programme Ă  mĂȘme de fonctionner sur des plate-formes trĂšs diverses, Ă  dĂ©faut d’ĂȘtre optimisĂ© pour chacune d’elles. Comment fonctionne OpenGL et comment peut-on exploiter ses potentiels ?

Si vous avez entendu parler d’OpenGL, vous avez probablement perçu que cette norme avait quelque chose à voir avec le graphique. C’est bien exact. Mais qu’en est-il au ­­­juste ?

Une API graphique

OpenGL (Open Graphics Library) est une API dĂ©diĂ©e aux fonctions graphiques. En d’autres termes, il s’agit d’une sĂ©rie de fonctions graphiques prĂ©dĂ©finies et prĂ©-programmĂ©es et auxquelles un dĂ©veloppeur peut faire appel pour tracer des Ă©lĂ©ments sur un Ă©cran.

D’autres APIs sont disponibles, comme Direct X pour Windows ou Metal pour iOS. Toutefois, ce qui fait la force de OpenGL, c’est que  les fonctions dĂ©finies par cette norme savent piloter le GPU de la plupart des cartes graphiques rĂ©centes, et donc par exemple, aussi bien sur les PC que sur les Mac. Pour mĂ©moire, les GPU (processeurs graphiques) sont habituellement beaucoup plus puissants que les CPU (microprocesseurs).

Quelle est la spécification de OpenGL ?

En rĂ©alitĂ©, OpenGL est particulier en ce sens que – et son nom Open Graphics Library est trompeur Ă  cet Ă©gard – il ne s’agit pas d’une librairie comme en trouve pour Python. En rĂ©alitĂ©, OpenGL est une « spĂ©cification ». Qu’est-ce Ă  dire ?

Nous pourrions comparer une spĂ©cification Ă  une recette informatique, en ce sens qu’elle dĂ©crit ce qu’un programme doit accomplir, mais ne fournit pas les instructions correspondantes.

Et oui
 OpenGL ne contient pas de code. Il spécifie que certaines fonctions graphiques 2d et 3d doivent exister pour une carte graphique donnée, par exemple:

  • dessiner un triangle,
  • colorer le contenu d’un bloc,
  • dĂ©finir une source de lumiĂšre,
  • etc.

Chacune de ces fonctions est appelĂ©e Ă  recevoir certains paramĂštres et produire un retour un certain rĂ©sultat, tel que le tracĂ© d’un triangle dans une fenĂȘtre.

Chaque constructeur gĂšre sa version de OpenGL

C’est le constructeur d’une carte graphique (Nvidia, AMD, Intel
) qui gĂšre l’implĂ©mentation des fonctions de OpenGL pour son propre matĂ©riel. Et il fournit Ă  chaque fois le driver de la carte graphique, ce driver reprĂ©sentant l’interface entre le programme Ă©crit par un dĂ©veloppeur et le GPU de la carte.

Multi-plateforme

L’avantage de OpenGL c’est qu’un programme qui exploite cette spĂ©cification va donc fonctionner avec une multitude de cartes graphiques – la quasi totalitĂ© des cartes rĂ©centes. De fait, OpenGL est une spĂ©cification « cross-platform » (multiplateforme). Le mĂȘme jeu, la mĂȘme app, va pouvoir tourner sur Windows, iOS, Linux, Android. 

Seul souci : comme chaque constructeur implĂ©mente son propre code OpenGL, il peut arriver qu’un jeu n’ait pas tout Ă  fait le mĂȘme aspect et les mĂȘmes performances sur des matĂ©riels diffĂ©rents, par exemple la Xbox Series X et la Sony PS5.

Simple Ă  aborder

La principale alternative multiplateforme de OpenGL est Vulkan. Cette spécification proposée par Khronos Group offre un contrÎle plus précis sur les cartes graphiques et ouvre donc la voie à une meilleure optimisation.

Pourtant, OpenGL est bien plus simple Ă  aborder par un dĂ©veloppeur qui ferait ses dĂ©buts dans le jeu vidĂ©o ou la crĂ©ation d’apps. Qui plus est, de par son anciennetĂ© (1992), OpenGL est assez stable et prĂ©visible sur toutes sortes de plates-formes.

Bien Ă©videmment, un studio de dĂ©veloppement de jeux Ă  grande Ă©chelle gagnera Ă  programmer un jeu directement avec Direct X 12-Ultimate pour ce qui est de la version Windows, avec Metal pour le Mac et l’iPad, etc
 Il rest que pour un petit studio, l’approche OpenGL sera bien moins coĂ»teuse.

Deux versions de OpenGL

Deux versions de OpenGL sont disponibles:

  • Legacy OpenGL
  • Modern OpenGL (la version 3.3 et au-dessus)

Ce dernier donne accĂšs Ă  des « shaders« , soit du code qui s’exĂ©cute directement sur le GPU et dĂ©finit comment les pixels individuels, mais aussi des attributs de polygones doivent ĂȘtre traitĂ©s et affichĂ©s.

Il est bon de débuter avec OpenGL

Ainsi donc, si vous dĂ©marrez dans la programmation d’applications et vous demandez quel outil mettre Ă  contribution, il est plus que conseillĂ© de recourir Ă  OpenGL. Une fois que vous aurez acquis de la pratique, vous pourrez ĂȘtre tentĂ© d’utiliser Vulkan, Direct3D ou Metal. OpenGL est parfait pour s’initier Ă  la gestion d’interfaces graphiques et reprĂ©sente donc un chemin idĂ©al pour les dĂ©butants.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les derniÚres actualités data directement dans votre boßte mail.

Vous souhaitez ĂȘtre alertĂ© des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?