« Programmation OpenGL » : différence entre les versions

Contenu supprimé Contenu ajouté
m syntaxe lien en: ; utilisation de <source>
Pleclown (discussion | contributions)
typos
Ligne 1 :
OpenGL (http://www.opengl.org) est une interface de programmation standard pour le graphisme 2D et 3D, adapté qui plus est pour être traité directement au niveau matériel. Du fait de leur aspect bas niveau, les primitives proposées par OpenGL nécessitent en général des fonctions de plus haut niveauxniveau, pour faciliter le rendu et la gestion d'objets complexes, ainsi que leur interaction avec leur environnement. Il faut bien comprendre qu'OpenGL n'est ''qu'une'' couche de rendu.
 
Pour effectuer des opérations plus complexes telles que des ombres portées, de l'animation par armature, la détection de collision de polygones, la gestion des lois de la physique (gravité, choc mous, particules, etc.), il vaut mieux utiliser des bibliothèques de plus haut niveaux, telles que :
 
* GLU (OpenGL Utility library) : Cette bibliothèque est en général incluse d'office avec toute implémentation d'OpenGL. Elle permet de faire un rendu d'objets plus complexes à base de surfaces de béziers ou de splines bi-cubiques (NURBS - Non Uniform Rational Bicubic-Spline), ainsi que le découpage de polygones complexes en polygones convexes (des triangles en général, seul type de polygone pris en charge directement par OpenGL). Cette bibliothèque n'utilise en fait que des primitives OpenGL, c'est pourquoi ces fonctions ont été mises dans une bibliothèque à part.
* GLUT (OpenGL Utility Toolkit library) : Cette bibliothèque permet de s'affranchir des spécificités du systèmes d'exploitation pour exploiter OpenGL, notamment l'ouverture de fenêtre graphique et de la gestion des évènements (souris, clavier, redimentionnement, rafrachissement, etc.). Elle propose aussi quelques fonctions pour créer des objets relativement courrantcourants (notamment lorsqu'on débute !), tels que des sphères, des tores, des carrés et la fameuse teillèrethéière.
 
Reste que même avec ces trois bibliothèques de fonctions, il y a de quoi rester sur sa faim. Il existe de nombreux moteurs 3D, qui prennent en charge la gestion d'un environnement 3D et en leur appliquant des fonctions de haut niveau (telle l'insertion d'objets issus de modeleur 3D, la gestion des ombres portées, de la physique élémentaire, etc.). Il en existe beaucoup, aussi bien commerciaux, que libres, Internet et ses moteurs de recherche sauront vous montrer une liste exhaustive.