Bonjour !
Comme l'indique le titre j'ai besoin d'aide pour corriger mon calcul d'espace tangent.
J'utilise la formule suivante :
Formule que j'ai retrouvée sur plusieurs sites, qui donne des résultats plutôt satisfaisants, mais pas tout le temps :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 l_vec2m1 = l_pt2 - l_pt1; l_vec3m1 = l_pt3 - l_pt1; l_tex2m1 = l_uv2 - l_uv1; l_tex3m1 = l_uv3 - l_uv1; l_tangent = ((l_vec2m1 * l_tex3m1[1]) - (l_vec3m1 * l_tex2m1[1])) / ((l_tex3m1[1] * l_tex2m1[0]) - (l_tex3m1[0] * l_tex2m1[1])); l_tangent -= l_normal * point::dot( l_tangent, l_normal ); point::normalise( l_tangent ); l_bitangent = l_normal ^ l_tangent; point::normalise( l_bitangent ); l_bRightHanded = point::dot( l_normal ^ l_tangent, l_bitangent ) >= 0; if( !l_bRightHanded ) { l_bitangent *= -1; l_tangent = l_ptUnit - l_tangent; }
Dans ces 2 images on voit qu'avec ce modèle, qui utilise des "demi-textures" pour la droite et la gauche en jouant avec les UV pour les mapper correctement, le calcul est erroné, l'espace tangent est scindé en 2 (image de gauche, les tangentes) et donne un rendu bizarre avec les lumières (image de droite).
Quelqu'un a-t-il la formule magique qui résoudrait mon problème ?
Partager