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

DirectX Discussion :

Calcul des Tangents d'un Mesh


Sujet :

DirectX

  1. #1
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut Calcul des Tangents d'un Mesh
    Bonjour, je calcule les tangents de mes meshs par cette fonction (pour faire du Parallax Bump Mapping) :

    private void GenerateTN()
    {
    VertexElement[] elements = new VertexElement[]
    {
    new VertexElement(0, 0, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.Position, 0),
    new VertexElement(0, 12, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.Normal, 0),
    new VertexElement(0, 24, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.TextureCoordinate, 0),
    new VertexElement(0, 36, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.Tangent, 0),
    new VertexElement(0, 48, DeclarationType.Float3, DeclarationMethod.Default, DeclarationUsage.BiNormal, 0),
    VertexElement.VertexDeclarationEnd,
    };
    VertexDeclaration decl = new VertexDeclaration(CDXCore.D3DDevice, elements);
    Mesh tempMesh = D3DMesh.Clone(MeshFlags.Managed, elements, CDXCore.D3DDevice);
    D3DMesh.Dispose();
    D3DMesh = tempMesh;

    try
    {
    D3DMesh.ComputeTangentFrame(TangentOptions.GenerateInPlace);
    }
    catch (DirectXException ex)
    {
    MessageBox.Show("Can't Generate Tangents ");
    }
    }


    Certains mesh passe sans soucis mais d'autres renvoie une erreur "InvalidDataException".
    Ma procédure est-elle correcte ? Quelles sont les conditions ou les règles à observer lors de la création du mesh pour que DirectX puisse générer les tangets sans problème ?

    Merci pour votre aide

  2. #2
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    Petite erreur de post...
    Lisez

    D3DMesh.ComputeTangentFrame(TangentOptions.CalculateNormals);

    au lieu de :

    D3DMesh.ComputeTangentFrame(TangentOptions.GenerateInPlace);


  3. #3
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    perso je n'ai jamais essayé cette fonction mais à tout hasard :
    - peut-etre qu'il a des problèmes avec les triangles de surface zéro (c'est à dire que deux ou plus de ses sommets sont confondus).

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  4. #4
    Membre confirmé
    Avatar de funkydata
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 515
    Points : 504
    Points
    504
    Par défaut
    C'était bien ca merci pour le conseil !!

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pense à cliquer sur

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

Discussions similaires

  1. Calcul des tangentes pour le bump mapping
    Par Charlie111 dans le forum OpenGL
    Réponses: 4
    Dernier message: 02/06/2010, 19h00
  2. Calcul de tangente pour un mesh
    Par derferic dans le forum DirectX
    Réponses: 3
    Dernier message: 24/05/2008, 01h53
  3. calculs des points
    Par rabi dans le forum OpenGL
    Réponses: 11
    Dernier message: 12/02/2004, 10h03
  4. Calcul des jours feriés
    Par obione dans le forum Langage
    Réponses: 5
    Dernier message: 07/11/2003, 12h36
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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