IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

La programmation avec OpenGL sous Windows

Date de publication : 11 janvier 2010


I. Introduction
I-A. OpenGL, qu'est-ce donc ?
I-A-1. OpenGL
I-A-2. GLU
I-A-3. GLUT
I-B. A qui s'adresse ce document ?
I-C. Organisation de ce document


I. Introduction


I-A. OpenGL, qu'est-ce donc ?


I-A-1. OpenGL

OpenGL est une interface de programmation vers le matériel graphique, indépendante du matériel utilisé. En fait c'est une spécification ouverte d'une API 3D que chacun est donc libre d'implémenter. Cela lui a permis de bénéficier facilement de l'accélération matérielle de la part des constructeurs de cartes graphiques.

En tant qu'API de programmation 3D, OpenGL trouve son application dans le développement de logiciels professionnels de synthèse d'images (3Ds max, Blender, Maya, etc.) et de CAO (AutoCAD, etc.), de jeux vidéos, d'applications scientifiques (modélisation mathématique, médecine, recherches, etc.), etc. OpenGL est totalement portable, mais le prix à payer est qu'aucune commande dépendante de l'OS (système de fenêtrage, affichage du rendu, interaction avec l'utilisateur, etc.) n'est incluse et que seules les commandes graphiques de bas niveau existent. A cet effet, on a donc le choix entre :

  • Utiliser les APIs du système d'exploitation.

  • Utiliser une bibliothèque tierce qui s'occupera notamment du fenêtrage et tout le reste. Citons par exemple GLUT (OpenGL Utility Toolkit Library), GLAUX (OpenGL Auxiliary Library – pour le système d'exploitation Windows uniquement), SDL (Simple DirectMedia Library), GTK (GIMP ToolKit), etc.

Pour utiliser OpenGL, vous devez inclure <gl/gl.h> et, sous Windows, vous lier avec opengl32.lib (opengl32.lib est la bibliothèque d'importation de opengl32.dll (ce fichier se trouve dans le répertoire système)).


I-A-2. GLU

OpenGL étant une API de très bas niveau comme vous allez le constater, les développeurs utilisent souvent conjointement d'autres wrappers proposant des commandes de plus haut niveau. GLU (The OpenGL Utility Library) est une bibliothèque entièrement basée sur OpenGL et largement utilisée de par le monde. Actuellement, il n'existe pas d'implémentation d'OpenGL qui ne soit pas accompagnée de GLU.

Pour utiliser la GLU, vous devez inclure <gl/glu.h> et, sous Windows, vous lier avec glu32.lib (glu32.lib est la bibliothèque d'importation de glu32.dll (ce fichier se trouve dans le répertoire système)). Si vous incluez <gl/glu.h>, il n'est plus besoin d'inclure <gl/gl.h> vous-même, puisque ce sera déjà fait.


I-A-3. GLUT

GLUT est aussi à peu près comme la GLU, sauf qu'elle fait beaucoup plus. En effet, en plus de fournir des fonctions de dessin de très haut niveau (entièrement basées sur OpenGL), elle fournit également des fonctions de création et de gestion de fenêtres (basées sur les APIs du système). Nous n'allons pas utiliser GLUT pour créer nos fenêtres parce que nous savons le faire en utilisant directement les APIs. Par contre, il faut vraiment avoir de bonnes raisons pour se priver des fonctions de dessin de haut niveau proposées par cette bibliothèque. Dans ce tutoriel, nous allons donc également utiliser la GLUT.

Contrairement à la GLU, c'est rare qu'une implémentation d'OpenGL soit directement accompagnée de la GLUT. Vous trouverez l'implémentation de GLUT pour Windows (glut.h, glut32.lib et glut32.dll) sur en ce site. En fait, vous n'avez plus besoin de vous y rendre vous-même car vous trouverez également GLUT pour Windows dans la même archive que celle de la version hors-ligne de ce document.

Pour utiliser la GLUT, vous devez inclure <gl/glut.h> et, sous Windows, vous lier avec glut32.lib (glut32.lib est la bibliothèque d'importation de glut32.dll (pour simplifier vos développements, copiez ce fichier dans le répertoire système)). Si vous incluez <gl/glut.h>, il n'est plus besoin d'inclure <gl/gl.h> ni <gl/glu.h> vous-même, puisque ce sera déjà fait.


I-B. A qui s'adresse ce document ?

Ce document s'adresse en premier lieu aux programmeurs Windows qui désirent s'initier à OpenGL, bien que la plus grande partie du document est écrite de manière à ne viser aucune plateforme particulière, OpenGL étant, il est bien de le répéter, une API totalement indépendante de tout matériel et de tout logiciel. Alors pourquoi avoir mis en avant Windows ? La raison est toute simple :

Dans les paragraphes précédents, nous avons vu qu'OpenGL n'intégrait aucune commande liée au système de fenêtrage. Pour programmer avec OpenGL, nous avons donc le choix entre gérer les fenêtres avec directement les APIs de l'OS et recourir à une bibliothèque encaspulant la complexité de ces APIs. Dans ce tutoriel, c'est la première solution que nous allons adopter car c'est un très bon moyen de bien comprendre OpenGL.



I-C. Organisation de ce document

La partie II (ainsi qu'une certaine part de la partie III) s'adresse exclusivement à la présentation des fonctionnalités disponibles sous Windows le permettant de bien supporter OpenGL. Seuls les trois premiers paragraphes sont indispensables pour la compréhension de la suite. De plus, si vous maîtrisez déjà cette partie, ou si vous n'en avez tout simplement pas besoin, alors vous pouvez directement aller à la partie III.

 

Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Melem. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.