TP Lumière
Récupérez le projet IlluminationRosen . Exécutez-le. La scène représente un maillage polygonal de la fonction de Rosenbrock sur l’intervalle (-1,1)x(-1,1) .
question 1 Où dans le programme les normales sont-elles calculées ?
question 2 En décommentant la ligne glEnable(GL_NORMALIZE) le résultat est beaucoup plus intéressant. Pourquoi ?
question 3 En commentant les valeurs intitiales, modifiez les diverses couleurs pour obtenir différents effets (lumière émissive, ambiante, réflection diffuse et spéculaire, largeur des reflets…). Pas de compte-rendu pour cette question.
Il y a trois sources de lumière dans la scène:
- un éclairage ambiant, très faible
- un éclairage provenant de la caméra, qu’on peut (des)activer en appuyant sur ‘0’, initialement allumé
- un éclairage provenant d’une source qu’on peut faire tourner autour de l’objet au moyen des flèches du clavier, et (des)activer au moyen de la touche ‘1’, initialement éteint
question 4 Identifiez dans le programme où ces différentes sources sont définies et utilisées. Vous pouvez utiliser les numéros de lignes du programme original.
question 5 On visualise mal l’emplacement de la source mobile. Faites-la apparaître sous forme d’un cube blanc en fil de fer (glutWireCube(0.1)).
question 6 Le cube n’est pas vraiment blanc, car on est en mode GL_LIGHTING et il subit donc l’éclairage. À l’aide des instructions glPushAttrib(GL_LIGHTING_BIT), glDisable( GL_LIGHTING ) et glPopAttrib(), désactivez temporairement l’éclairage au moment d’afficher le cube.
question 7 Les reflets causés par la lumière mobile sont jaunâtres. Que faire pour en obtenir de franchements verts , tout en gardant la surface rouge hors des reflets?