Table of contents
- La 3D avec OpenGL
- Rappel : une matrice 4x4 peut
- Pipe line OpenGL
Matrice MODELVIEW
- Passe les coordonnées des objets à dessiner (modèles) dans le repère de la caméra. Définit un repère !
- La position de la caméra est en général (0,0,0) donc la matrice MODELVIEW représente la position où sera dessiné le prochain objet.
Matrice PROJECTION
- Clippe les coordonnées des points et les projette
Division perspective
- Division par la coordonnée homogène w pour obtenir des coordonnées normalisées
Viewport transformation
- Passage en pixel pour dessin dans une partie d'une fenêtre graphique (viewport)
- Il existe une "matrice courante" que l'on spécifie avec la commande glMatrixMode(GL_MODELVIEW) ou glMatrixMode(GL_PROJECTION)
- En général on travaille tout le temps sur la matrice MODELVIEW sauf lorsqu'on doit modifier les paramètres intrinsèques de la caméra (focale, taille du viewport, etc...).
...
glMatrixMode(GL_PERSPECTIVE);
glLoadIdentity();
gluPerspective(myFovy, 1.0, myNear, myFar);
glViewport(0, 0, 400, 400);
glMatrixMode(GL_MODELVIEW);
...
![]()
- REMARQUE : à l'aide de la fonction glViewport() on peut dessiner la même scène à plusieurs endroits sur la fenêtre graphique.
- Attention : pour déplacer la caméra on ne travaille pas sur la matrice PROJECTION, puisque la matrice qui encode le changement de repère modele vers caméra est la MODELVIEW.
Comment changer la valeur de la matrice courante ?
- Comment donner l'illusion que la caméra se déplace ?
- On empile des matrices !
- Plans de clipping additionnels
- Exemple de plan de clipping
- Quelques exemples d'objets hiérarchisés
- Quelques exemples d'objets hiérarchisés (2)
![]() |