Visualisation d’une scène
glViewPort
Il ne faut pas confondre la fenêtre d’affichage (définie par le système de fenêtrage qui est
indépendant d’OpenGL) et le cadre (partie de fenêtre) dans lequel on veut visualiser la scène.
De même que l’on colle une photo sur un poster, on va positionner l’image de la scène dans la
fenêtre en la déformant éventuellement pour la faire rentrer dans un cadre (il faut conserver le
ratio largeur/hauteur pour obtenir une image non « déformée »). C’est le rôle de la fonction
glViewport .
glViewport(GLint x0, GLint y0, GLint largeur, GLint hauteur)
gluLookAt
gluLookAt( GLdouble Px, GLdouble Py, GLdouble Pz, // position de l’appareil
GLdouble Cx, GLdouble Cy, GLdouble Cz, // point visé dans la scène
GLdouble Hx, GLdouble Hy, GLdouble Hz) // haut de l’appareil
void afficheMaScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity() ;
gluLookAt(0,0,5, 0,0,0, 0,1,0) ;
construire la scene
glutSwapBuffers();
}
Le mode projection
Lorsqu’une scène est construite, sa visualisation nécessite deux types de transformation :
1. des transformations dans l’espace 3D qui permettent de positionner le point de vue et
les éventuels éclairages si l’on veut obtenir un rendu réaliste,
o matrice de modélisation GL_MODELVIEW
o les lumières et le point de vue sont positionnés comme les autres acteurs de la
scène.
2. la transformation qui consiste à projeter cette scène 3D sur une fenêtre 2D et qui
caractérise les propriétés de la prise de vue.
o matrice de projection GL_PROJECTION
Frame buffer
Espace mémoire dont le contenu est une représentation logique de ce qui apparaît à
l’écran
Deux dimensions définissent la résolution spatiale de l’image et forment un plan
Une troisième dimension appelée “profondeur” spécifie le nombre de bits utilisés pour
représenter un pixel
Intermédiaire entre l’écran et la bibliothèque graphique
OpenGL
Bibliothèque (API) multi-plateforme (portable) de fonctions graphiques permettant de réaliser
des scènes réalistes en 2D ou en 3D
Tracé de figures géométriques
Rendu par projection orthogonale ou perspective
Placage de texture
Simulation d'éclairages réalistes
Effet de brouillard, de flou
Glut (OpenGL Utility Toolkit)
Système de fenêtrage simple et portable basé sur la programmation évènementielle.
Gère les interactions avec le système d'exploitation
Multi fenêtrage
Gestion interruptions (clavier, souris, …)
Gestion de menus
SDL offre également ces fonctionnalités.
GLU (OpenGL Utility Library)
Librairie standard proposant des commandes bas-niveau écrites en GL:
certaines transformations géométriques
triangulation des polygones
rendu des surfaces paramétriques et quadriques
Quand rien ne se passe
glutIdleFunc
o pas bien
glutTimerFunc
o bien
Utilité d’une représentation en coordonnées homogènes
des transformations géométriques
Représenter les transformations sous forme matricielle.
Composer ces transformations par des multiplications de matrices.
VRAI INTERET D’UTILISER glMultMatrix
Pour chaque objet, garder sa matrice de transformation
glLoadMatrix : charger la matrice dans la pile MODL_VIEW
glMultMatrix : multiplication de la matrice sur la pile avec la matrice choisie
En multipliant les deux matrices, on a la transformation voulue sur l’objet auquel on a affecté
la matrice.
Modifier le contraste d’une image
Expansion dynamique
Contraste par saturation
Seuillage ?
ZBuffer
Le contexte graphique doit prévoir l’utilisation du ZBuffer
o glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH)
Initialiser le ZBuffer
o glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
Activer le ZBuffer
o glEnable (GL_DEPTH_TEST)
Lumières
Couleurs
Saturation de lumière : blanc
Absence de lumière : noir
Lumière issue
source active : lampe, soleil
source passive : restitue une partie de la lumière reçue
La perception de la couleur dépend de
la distribution des longueurs d’onde de la source lumineuse
des caractéristiques physiques de l’objet
des positions de la source, l’objet et l’observateur
Eclairage
Un rayon lumineux sur une surface
Une partie est absorbée (filtrage)
Une autre est réfléchie (lois de la normale) : réflexion spéculaire
Le reste est diffusé dans toutes les directions : réflexion diffuse
Les réflexions multiples sur les objets génèrent la lumière ambiante qui n’a pas d’orientation
privilégiée et éclaire les zones d’ombre.
Position de l’éclairage
Les matériaux
Cuivre, argent, …
Etat de la surface
Mat,brillant, …
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !