| Tous les documents sont autorisés. On n'oubliera pas de
    fournir quelques explications sur les techniques employées. Question 1: Animation de caméra en OpenGL On considère une scène OpenGL quelconque modélisée par la fonction void
    scene(void);. Cette scène occupe un volume sphérique de rayon 100 centré sur l'origine
    du repère global.De manière à mettre en évidence les déformations d'affichage liées aux techniques de
    mise en perspective, on souhaite programmer une animation interactive contrôlée au
    clavier où une caméra peut se déplacer entre les positions (1000.0, 0.0, 0.0) et
    (120.0, 0.0, 0.0). Le déplacement entre deux images est de 2.0. Au cours de ses
    déplacements, l'ouverture de la caméra est ajustée pour conserver la scène en gros
    plan dans la fenêtre d'affichage. Les touches de curseur "up" et
    "down" permettent d'avancer et de reculer la caméra.
 Ecrire la fonction de gestion du clavier ainsi que les fonctions reshape et display
    permettant de programmer cette animation en C + OpenGL + GLUT.
 Correction Question 2: Courbes et surfaces paramétriques a) Soit la courbe paramétrique cubique C(t) = (t3, t2,
    t, 1).M.G, t  . Donner l'équation de la tangente à cette courbe. b) Soit la surface paramétrique bicubique S(s,t) = (s3, s2,
    s, 1).M1.G.M2. , s et t  . Définir une méthode permettant de calculer la normale à cette surface. Correction Question 3: Calcul du rayon transmis La formule de calcul du rayon transmis lors d'une réfraction est 
 où n est le rapport entre les indices de réfraction des milieux d'incidence et de
    transmission,  est la normale à l'interface de transmission
    orientée dans le milieu d'incidence,  est le rayon lumineux
    incident normé et  est le rayon transmis. Spécifier et écrire une fonction de calcul du rayon transmis. Correction Question 4: Modélisation d'une scène et gestion des lumières et des matériaux en
    OpenGL On souhaite programmer une scène constituée de quatre sphères de rayon 4 situées
    aux sommets d'un tétraèdre régulier centré sur l'origine. Ce tétraèdre possède des
    cotés de longueur 10. Ces quatre sphères sont munies de matériaux possédant les caractéristiques
    suivantes: 
      sphère n°1 : diffusion dans le rouge, réflexion spéculaire dans le blanc,sphère n°2: diffusion dans le vert, pas de réflexion spéculaire,sphère n°3: diffusion dans le bleu, réflexion spéculaire dans le magenta,sphère n°4: diffusion dans le cyan, réflexion spéculaire dans jaune. Cette scène est éclairée par une source lumineuse ponctuelle blanche en diffusion et
    en réflexion spéculaire placée à l'origine et par trois lumières directionnelles
    elles aussi blanches en diffusion et réflexion spéculaire et éclairant respectivement
    selon les directions x, y et -z. Ecrire une fonction void scene(void); modélisant cette scène. Correction Rappel de quelques fonctions OpenGL ([] indique des fonctions à suffixe) 
      glClear(
): Effacement des tampons de dessinglDisable(
): Désactivation d'une caractéristique OpenGLglEnable(
): Activation d'une caractéristique OpenGLglFrustum(
): Définition d'une transformation de mise en perspectiveglLight[](
): Définition d'une lumièreglMaterial[](
): Définition d'un matérielglMatrixMode(
): Choix de la transformation géométrique couranteglPopMatrix(
): Dépilement de la transformation géométrique couranteglPushMatrix(
): Empilement de la transformation géométrique couranteglRotate[](
): Définition d'une rotationglScale[](
): Définition d'un zoomglTranslate[](
): Définition d'une translationgluLookAt(
): Définition d'un point de vue pour une visualisationgluPerspective(
): Définition d'une transformation de mise en perspective |