11/07/01 18:11 |
OpenGL (Partie 1) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DÉFINITION INTRODUCTION INSTRUCTIONS VISUALISATION LES LISTES LES LUMIÈRES LES MATÉRIAUX LES BITMAPS LE PLACAGE LES
COURBES LA
SÉLECTION
Dernière modification |
Définition
GL et OpenGL sont des librairies graphiques d'affichage trois dimensions. GL: Librairie graphique standard de Silicon Graphics (orientée visualisation). Utilisée sur les stations SGI ainsi que sur les stations d'autres constructeurs (sous licence). OpenGL: Sous-ensemble de GL ne nécessitant pas une licence SGI (orienté visualisation) Interface logicielle avec les adaptateurs graphiques 3D Environ 120 instructions distinctes Spécification des objets et production dapplications graphiques 3D interactives Conçu initialement pour fonctionner en environnement Unix -> exploitation de X-Windows -> exploitation des réseaux Standard de la programmation d'applications graphiques en CAO Indépendant de la machine hôte
Ce programme dessine un carré blanc au centre dune fenêtre de fond noir. Les fonctions OpenGL de base commencent par le préfixe gl. Les constantes (#define ou enum) sont données en majuscule et commencent par le préfixe GL_.Certaines instructions finissent par un suffixe. Exemple: glVertex2f Ce suffixe indique le nombre et le type des arguments de la fonction.
Variables d'étatOpenGL est une state-machine. -> Des instructions existent pour placer le système dans certains états. Ceux-ci resteront actifs (utilisés à cette valeur) jusqu'à être changés (couleurs de tracé, matrices de transformation, activation du Z-Buffer, ...). L'ensemble des ces "variables d'états" constitue l'"environnement". Fonctions
activation de variables d'état
inhibition de variables d'état consultation de variables d'états ou de paramètres de l'environnement OpenGL consultation de variables d'états booléennes
sauvegarde de variables d'état par empilement dans une pile restauration de variables d'état par dépilement
Bibliothèques d'OpenGL (1) OpenGL Library (GL) Librairie standard proposant les fonctions de base (2) OpenGL Utility Library (GLU) Commandes bas-niveau écrites en GL: (3) OpenGL extension to X-Windows (GLX) (5) OpenGL Tk Library (GLTk) Équivalent à Aux mais avec l'utilisation de TclTk pour l'interface graphique (6) OpenGL Ut Library (GLUt) Équivalent à Aux Facilite la programmation d'OpenGL aux moyen d'un jeu d'instructions d'interfaçage vis à vis du système d'exploitation de l'ordinateur (Interface graphique). Programmation presque identique à celle réalisée au moyen de Aux. Fonctionnalités supplémentaires:
Effacement de la fenêtre de dessin Par effacement de la fenêtre de dessin, on entend effacement des zones de mémoire suivantes (définies dans OpenGL):
L'effacement proprement dit est réalisé par
mask: choix du buffer à éffacer
Choix de la couleur d'éffacement
r, v, b, alpha: couleurs de remplissage du tampon couleur
depth: profondeur de remplissage du tampon profondeur Choix d'une couleur de tracé
r, v, b, alpha: couleurs de tracé
La couleur choisie est
active pour tous les objets définis après elle, jusqu'à nouvelle notification.
Utilisé pour forcer l'exécution entière du tracé d'une image (vidage d'un pipeline d'affichage sur une station graphique, exécution des ordres de tracé sur un réseau). glFinish se met en attente d'une notification d'exécution de la part du dispositif graphique tandis que glFlush n'attend pas.Élimination des parties cachéesL'affichage d'une scène correspond à l'exécution du programme suivant: while(1)
{ -> Utilisation de la fonction glEnable pour valider l'élimination des parties cachées par Z-Buffer. glEnable(GL_DEPTH_TEST);
Sans élimination des parties cachées
Avec élimination des parties cachées Sommets, lignes et polygones - Sommet: Ensemble de trois coordonnées en virgule flottante représentant une position dans l'espace
- Ligne: Segment rectiligne - Polygone: Surface délimitée par une boucle de segments de lignes
Déclaration d'un sommet
coords: coordonnées du sommet Cette fonction sert uniquement à la déclaration ultérieure de lignes et de polygones: des primitives graphiques. Une primitive graphique est constituée d'un ensemble de sommets.Déclaration d'une primitive graphique Elle est déclarée par la donnée successive des instructions permettant la création de ses sommets. La primitive est délimitée au début et à la fin par
mode: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_POLYGON, GL_QUADS, GL_QUAD_STRIP, GL_TRIANGLES, GL_TRIANGLE_STRIP ou GL_TRIANGLE_FAN et
Exemple glBegin(GL_POLYGON);
Une primitive peut contenir d'autres informations que ses seuls points. Celles-ci sont aussi données via des appels à des fonctions.
Parmi ces fonctions, les plus importantes sont:
Configure la normale courante (utilisée pour les calculs d'éclairage) avec la valeur passée en paramètre. La valeur par défaut est (0,0,1).
Donne la normale(-1.0,0.0,0.0) aux deuxième et troisième sommets. Programme exemple
Utilisation fréquente de surfaces polygonales (ensembles de facettes adjacentes) pour modéliser des objets complexes.Déclaration d'un ensemble de facettes Recommandations
Configure la grandeur de tracé (par défaut 1) des points.
Configure la largeur de tracé (par défaut 1) des segments de ligne.
Configure le motif de tracé des lignes. Le motif est une série de 16 bits (poids faible à poids fort) où les 1 représentent des pixels allumés et des 0 des pixels non modifiés. Le facteur (de 1 à 255) permet l'étirement du motif par multiplication (un 1 devient factor 1 consécutifs). L'utilisation des motifs pour les segments est subordonnée à autorisation via un glEnable(GL_LINE_STIPPLE).
Configure le dessin des faces avant et arrières des polygones. face peut être GL_FRONT, GL_BACK ou GL_FRONT_AND_BACK. mode peut être GL_POINT, GL_LINE ou GL_FILL pour un dessin des sommets, en fil de fer ou avec remplissage.
Contrôle comment la face frontale des polygones est déterminée. La valeur par défaut est GL_CCW. Elle peut être inversée par GL_CW.
Contrôle si les polygones doivent être éliminés avant leur passage en coordonnées écran. mode peut être GL_FRONT, GL_BACK ou GL_FRONT_AND_BACK. L'utilisation du culling est subordonnée à autorisation via un glEnable(GL_CULL_FACE).
Définit le motif de remplissage courant des polygones. mask est un pointeur sur une bitmap de 32x32 pixels interprétée comme un masque de bits (128 octets). Si un 1 est présent, le pixel est dessiné, sinon, il ne l'est pas. L'utilisation des motifs pour les polygones est subordonnée à autorisation via un glEnable(GL_POLYGONE_STIPPLE). |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||