Salut à tous,
J'ai actuellement un petit problème avec le positionnement d'une lumière sous openGL.
Je m'explique:
Je dessine une grosse sphère en (0, 0, 0) et une petite en (0, 0, 1).
Dans une fonction appelée par le main() et jamais plus appelée ensuite, je positionne une lumière en (10, 10, 0).
Dans mon callBack de display displayFunc(), je positionne une caméra (lookAt() ) en (0, 0, 5).
Je vois donc mes 2 sphères. Ca ok !
Par contre, ma lumière semble se placer en (10, 10, 5) au lieu de (10, 10, 0) et je corrige ce problème en remettant un glLightfv(GL_LIGHT0, GL_POSITION, lightPosition) juste après le lookAt() dans mon displayFunc()...
Pourquoi la lumière se place-t-elle en relatif par rapport au lookAt() et non pas en absolu (donc en 10, 10, 0) ?
Pourquoi si je la repositionne après le lookAt(), tout à l'air de bien se passer ?
Plus grave, si mon lookAt() est maintenant en (0, 0, -5), ma lumière est du mauvais côté ? (en fait, elle se positionne encore par rapport au lookAt() et se trouve alors à l'envers ????
Je dois passer à côté de quelques chose non ?
Je peux fournir un code si besoin.
Merci.
Joe.
Partager