Aucun document nest autorisé. On n'oubliera pas de
fournir quelques commentaires sur les techniques employées.
Question 1: VRML
Le nud VRML suivant implante une caméra de visualisation en perspective:
PerspectiveCamera {
position x y z
orientation dx dy dz a
focalDistance f
heightAngle a
}
a) Que représentent les champs de ce nud?
b) On souhaite implanter une caméra placée en position (100, 0, 100) orientée vers le
point de coordonnées (0, 0, 0). Définir les valeurs des champs du nud
PerspectiveCamera que vous configureriez pour implanter ce point de vue.
c) La scène visualisée à la question b) est centrée sur lorigine. Elle occupe un
volume sphérique de rayon 5. Quelle valeur approximative donneriez vous à heightAngle
pour quelle soit visualisée en gros plan dans la fenêtre de votre viewer VRML?
Correction
Question 2: Mathématiques pour lInfographie
a) Que sont les «coordonnées homogènes»?
b) En quoi lutilisation des coordonnées homogènes est-elle intéressante en
Informatique Graphique?
Correction
Question 3: Modélisation par facettes en OpenGL
On souhaite modéliser une surface plane carrée selon les caractéristiques suivantes:
- Elle est située dans le plan xOy.
- Elle est centrée sur O.
- Elle possède un coté de longueur c.
- Elle est modélisée au moyen de n x n facettes carrées identiques juxtaposées (n=6
dans la figure ci-contre).
- Les normales sont créées pour autoriser un éventuel éclairage.
Ecrire une fonction C + OpenGL assurant la création de cet objet.
Correction
Question 4: OpenGL
a) Que réalise la fonction glLoadIdentity()?
b) Que réalise la fonction glRotatef(
)? Quels sont ses paramètres et que
représentent-ils?
c) Que réalise la fonction gluPerspective(
)? Quels sont ses paramètres et que
représentent-ils?
Correction
Question 5: Animation avec OpenGL et GLUT
a) On souhaite programmer une animation où une sphère de rayon 1.0 initialement
centrée en position (-2.0, 0.0, 0.0) et un cube de coté 2.0 initialement centré en
position (2.0, 0.0, 0.0) tournent autour de lorigine. La rotation est réalisée
dans le plan xOy à raison de 1° à chaque image.
Programmer les fonctions idle et display dune telle animation.
b) Modifier les fonctions de la question a) pour que les 2 objets se rapprochent de la
distance 0.001 entre chaque image jusquà ce quils se touchent. Après
contact, ils continuent à tourner autour de O mais ne se rapprochent plus.
Correction |