Précédent   Forum du club des développeurs et IT Pro > Applications > Développement 2D, 3D et Jeux > Moteurs 3D
Moteurs 3D Forum d'entraide sur les moteurs 3D (conception d'un moteur, Ogre, Irrlicht...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/12/2012, 08h53   #1
dragonjoker59
Membre Expert
 
Homme Sylvain DOREMUS
Développeur informatique
Inscription : juin 2005
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 31
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 645
Points : 1 549
Points : 1 549
Envoyer un message via MSN à dragonjoker59
Par défaut Correction d'espace tangent

Bonjour !

Comme l'indique le titre j'ai besoin d'aide pour corriger mon calcul d'espace tangent.
J'utilise la formule suivante :
Code :
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;
}
Formule que j'ai retrouvée sur plusieurs sites, qui donne des résultats plutôt satisfaisants, mais pas tout le temps :


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 ?
__________________
Si vous ne trouvez plus rien, cherchez autre chose...

Chef de projet (et unique exécutant pour l'instant) pour Castor 3D
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2013, 14h12   #2
dragonjoker59
Membre Expert
 
Homme Sylvain DOREMUS
Développeur informatique
Inscription : juin 2005
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Sylvain DOREMUS
Âge : 31
Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2005
Messages : 645
Points : 1 549
Points : 1 549
Envoyer un message via MSN à dragonjoker59
Apparemment c'est une question qui inspire ^^.

Après recherches sur le net, le genre de réponses que l'on trouve c'est : "Demande à ton graphiste de ne pas utiliser de demi-texture". Comme cette réponse est enrichissante, je vais en rester là.
__________________
Si vous ne trouvez plus rien, cherchez autre chose...

Chef de projet (et unique exécutant pour l'instant) pour Castor 3D
dragonjoker59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h07.


 
 
 
 
Partenaires

Hébergement Web