IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Moteurs 3D Discussion :

Correction d'espace tangent


Sujet :

Moteurs 3D

  1. #1
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    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 : 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;
    }
    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...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    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...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2013, 11h12
  2. Bump mapping. Question sur l'espace tangent.
    Par themoye dans le forum OpenGL
    Réponses: 9
    Dernier message: 14/03/2011, 00h18
  3. [CakePHP] impossible d'accéder à l'espace sécurisé malgré un login correct
    Par san1981 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 12/10/2009, 08h10
  4. Generation distribué d'espace d'etat : correction de code
    Par menoulette dans le forum Débuter
    Réponses: 2
    Dernier message: 18/09/2009, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo