Formation OpenGL

Chapitre 2 : Visualisation

Principe de la visualisation

Le processus de transformation qui produit une image à partir d'un modèle de scène 3D est analogue à celui qui permet d'obtenir une photographie d'une scène réelle à l'aide d'un appareil photo. Il comprend quatre étapes :

Avec un appareil photo Avec un ordinateur type de transformation
1 Positionner l'appareil photo Placer la caméra virtuelle transformation de visualisation
2 Arranger les éléments d'une scène à photographier Composer une scène virtuelle à représenter transformation de modélisation
3 Choisir la focale de l'appareil photo choisir une projection transformation de projection
4 Choisir la taille de la photographie au développement choisir les caractéristiques de l'image transformation de cadrage

[Sommets] -> [Matrice de Modélisation-Visualisation] -> [Matrice de Projection] -> [Division perspective] -> [Transformation de cadrage] ->
Coordonnées de l'oeil Coordonnées de clipping Coordonnées normalisées Coordonnées de la fenêtre
OpenGL fournit des commandes pour manipuler les matrices qui correspondent à ces quatre types de transformations.

La transformation de visualisation

Elle modifie la position et l'orientation de la caméra virtuelle.
La position par défaut de la caméra est à l'origine du repère de la scène, orientée vers les z négatifs, et la verticale de la caméra est alignée avec l'axe des y positifs :
Vous retrouverez la porsche sur le site de Nate Robins.
En fait, ce qui compte pour la visualisation est la position relative de la caméra par rapport aux objets. Il est équivalent par exemple de translater la caméra d'un vecteur T ou de translater tous les objets du vecteur -T.

On utilise ainsi les procédures OpenGL de translation et de rotation appliquées aux objets, glTranslate*() et glRotate*() pour changer le point de vue de la caméra.
On peut également utiliser (et c'est plus simple pour commencer ) la procédure gluLookAt(GLdouble eyex,GLdouble eyey, GLdouble eyez, GLdouble centerx,GLdouble centery,GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz ).

La transformation de modélisation

La manipulation d'objets 3D peut mener à des réflexions complexes pour bien positionner et orienter les objets. En effet, l'application successive d'une translation puis d'une rotation, ou l'inverse mènent à des résultats différents.

 

   

 

Pour s'y retrouver, il suffit de considérer que la transformation est appliquée au repère local de l'objet.

La transformation de projection

Il est nécessaire d'appeler glMatrixMode(GL_PROJECTION) pour passer en mode projection, et, si besoin de charger la matrice identité avec glLoadIdentity().

La transformation de cadrage

Compréhension par l'exemple

Exercice



17 décembre 2012