« Programmation OpenGL » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Tpierron (discussion | contributions)
Aucun résumé des modifications
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 niveaux, 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.
OpenGL est une 3D API pour programmer des applications qui emploient les cartes graphiques.
 
La page officielle est ici: http://www.OpenGL.org/
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 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 courrant (notamment lorsqu'on débute !), tels que des sphères, des tores, des carrés et la fameuse teillè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.