Première session 2003-2004

RETOUR

Jeudi 10 Juin 2004 - 2h

Tous les documents sont autorisés.
Exercice 1 : Programmation OpenGL

Cet exercice a pour but la modélisation et l'utilisation OpenGL de roues dentées.

  1. Ecrire une fonction modélisant une roue dentée. Les paramètres de génération sont l'épaisseur, le rayon intérieur, le rayon extérieur et le nombre de dents (voir images). La fonction doit générer les coordonnées et les normales pour autoriser les calculs d'ombrage.
  2.  

    Une roue dentée de 54 dents, d'épaisseur = 1,
    de rayon intérieur = 6.5 et de rayon extérieur = 7.5 (hauteur des dents = 1)

  3. Ecrire les fonctions display et idle réalisant l'animation d'une scène où une petite roue dentée de paramètres (2.0, 2.5, 3.5, 18) entraîne une grande roue de paramètres (1.0, 5.5, 6.5, 36) (voir image). Les deux roues tournent autour de l'axe z dans le plan xOy. Le matériau de la petite roue diffuse dans le vert. Celui de la grande roue diffuse dans le rouge. La petite roue tourne à raison de 1° entre chaque image.

Correction

Question 2

  1. En quoi consiste la "spécification des coordonnées de texture" pour la réalisation d'un plaçage de texture?
  2. Quelle est la fonction OpenGL permettant la spécification des coordonnées de texture?
  3. On considère une surface paramétrique bicubique. Indiquez comment vous définiriez les coordonnées de texture pour texturer cette surface.

Correction

Question 3

On souhaite programmer une animation où une caméra décrit une trajectoire pour se déplacer à l'intérieur d'une scène qui elle ne change pas. La trajectoire est une courbe paramétrique cubique définie par 4 sommets dans un espace à 3 dimensions. La caméra se déplace uniformément sur la trajectoire et la parcourt du début à la fin en un nombre n d'images. La caméra "regarde" dans la direction tangente à la trajectoire.

  1. Spécifier et écrire une fonction position permettant de calculer la position de la caméra sur la trajectoire à l'image ni (0 <= ni < n).
  2. Spécifier et écrire une fonction tangente permettant de calculer la direction tangente à la trajectoire à l'image ni (0 <= ni < n).
  3. Ecrire la fonction void reshape(int x, int y) définissant la caméra selon les paramètres suivants : p/5 radians d'ouverture verticale, ratio égal à celui de la fenêtre de visualisation, plans de découpage à une distance de 0.5 et 50.0.
  4. La scène est dessinée par une fonction void scene(void) considérée comme existante. Ecrire la fonction void display(void) dessinant une image de l'animation.

Correction

Remarques, erreurs
nicolas.janey@univ-fcomte.fr