Examen de TD n°1 2004-2005 |
|||
17 novembre 2004 - 1h25 | |||
Les documents ne sont pas
autorisés. On n'oubliera pas de fournir quelques explications sur les techniques employées. Question 1: Modélisation par facettes en OpenGL Ecrire une fonction OpenGL modélisant par facettes une sphère de rayon 1 centrée sur l'origine. Cette fonction prendra comme paramètre un niveau de facettisation à valeur entière. Elle devra assurer, la génération des facettes, la génération des normales nécessaires aux calculs d'éclairage, ainsi que la génération des coordonnées nécessaires à un placage de texture. Equation paramétrique de la sphère :
Question 2: Algorithmique de l'infographie La version simplifiée de l'algorithme de Bresenham pour le tracé de segments de droite sur écran raster est la suivante: void ligne(int xi,int yi,int xf,int yf) {int dx,dy,cumul,x,y ; x = xi ; y = yi ; dx = xf - xi ; dy = yf - yi ; allume_pixel(x,y) ; cumul = dx / 2 ; for ( x = xi+1 ; x <= xf ; x++ ) { cumul += dy ; if (cumul >= dx) { cumul -= dx ; y += 1 ; } allume_pixel(x,y) ; } } Adapter cette version pour qu'elle fonctionne sans condition sur xi, xf, yi et yf. Question 3: Caméras en VRML Le nud VRML permettant de définir une caméra de visualisation en perspective est le suivant: PerspectiveCamera { # valeurs par defautposition px py pz # 0 0 1 orientation dx dy dz angle # 0 0 1 0 focalDistance fd # 5 heightAngle ouverture # 0.78 (p/4) } On considère une scène centrée sur l'origine du repère et occupant un volume approximativement sphérique de rayon 10. Définir les nuds caméra que vous utiliseriez pour visualiser cette scène en perspective en gros plan dans la fenêtre d'un viewer VRML selon les points de vue suivants:
Question 4: Animation en OpenGL On souhaite programmer une scène animée en C + OpenGL + GLUT. Cette scène est constituée d'une unique sphère de rayon 1 qui parcourt cycliquement à vitesse constante une trajectoire carrée de coté 5 centrée sur l'origine et décrite dans le plan xOy. Un tour complet est réalisé en n images (n quelconque pas obligatoirement multiple de 4).
Rappel de quelques fonctions OpenGL ([] indique des fonctions à suffixe)
|
|||
Remarques, erreurs |