j'ai un petit probleme avec openGL en c++
Voila, je suis en stage dans un centre de recherche et ma "mission" consiste a animer des lèvres avec une succesion de modele representant les différnt sons possible dans le but de faire parler ces lèvres.
je dispose pour cela d'un maillage pour chaque phonème ("A","U"...)
Le tout s'affiche corectement mais j'ai un probleme avec la lumière.
j'affiche chaque maillage grace a une succesion de quadrilatère et j'y ajoute une lumière mais bizarement chaque facette des levres est eclairée de la meme manière
si on fait tourner les levre par rapport a leur centre e gravité, elles s'assombrisse mais de manière uniforme..
je ne comprend pas vraiment car si j'ajoute un glutSolidCube a la scene, il est , lui, eclairé correctement
Je suppose que c'est a cause des vecteurs normaux necessaire a la lumière mais toutes mes toutatives dans ce domaine depuis deux jours se sont soldés par des echecs :(
ton probleme vient effectivement des vecteurs normaux ...
pour le resoudre, la meilleure solution consiste donc a les calculer. cependant, le calcul "direct" d'un vecteur normal a chaque face ne donnera pas de bons resultats non plus (transitions trop franches entre les faces). pour y remedier, il va falloir que tu calcules un vecteur normal moyen pour chacun des sommets. C'est assez simple a faire : un sommet est entoure par un certain nombre de faces. pour chacune de ces faces, tu calcules ton vecteur normal, puis tu en fais la moyenne avec tous les autres qui se rattachent au meme sommet.
ca devrait resoudre ton probleme.
tu peux chercher des infos dans les tutoriels sur la generation de terrain. sinon, j'ai un code qui fait ca (mets moi un message avec ton mail) ...