Bonjour,
J'aimerais implémenter dans mon moteur le flat shading (rien de trés jojo, juste histoire de me faire une idée avant de passer au Gouraud puis au BlinnPhong ...) et je sais que j'ai besoin de normales.
J'utilise le format OBJ, j'ai donc pleins de normales et une normale par face, j'ai donc des normales indexées (comme les vertices ou même les coordonées de textures ... que je ne gère pas ), comment dois je passer ces fameuses normales à mes shaders ?
En uniform ? Avec les in ?
En fait j'aimerais une lampe directionelle, donc je dois aussi envoyer quelques vecteurs, comme la direction de cette source de lumière.

J'ai aussi entendu dire que on ne multiplie pas les normales par la matrice modelview, on utilise un matrice pour les normales (l'ancienne gl_NormalMatrix ...), en quoi est elle différente ? comment est ce qu'elle se construit ?

Merci de votre patience avec un débutant amateur comme moi !


Je viens de faire une recherche et apparemment, la matrice normale c'est la transposée de l'inverse de la modelview (ou le contraire, parceque c'est un calcul réversible).
Est-ce correct ?