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 :

texture mapping sur un trapeze


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut texture mapping sur un trapeze
    Bonjour a tous !


    J'ai un probleme de mapping de texture sur un trapèze.
    Une image étant plus parlante :
    J'obtient ceci:

    Et je voudrai cela:


    De ce que je comprends, D3D interpole mal la texture sur chaque triangle, mais je ne sais pas comment lui specifier la bonne methode.

    Merci de votre aide.
    (Pour info j'ai trouvé un post decrivant le meme probleme en OpenGl, mais j'ai du mal a y trouver une analogie avec D3D
    http://www.r3.nu/~cass/qcoord/ )

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    Tu ne dis pas avec quoi est fait ton trapèze : quad texturé ou fichier .X ?
    Si tu as un effet indésirable c'est que la texture est mal attachée sur les polygones.
    Sinon regarder dans le SDK de Direct X il faut mettre le IDirect3dDevice dans un état particulier

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    Salut Mat.

    Le trapeze est formé de 2 triangles dessinés avec un D3DPT_TRIANGLESTRIP.


    Pour donner un peu plus de details, j'utilise une structure

    struct CUSTOMVERTEX
    {
    float x, y, z;
    float u, v;
    };
    je la dessine
    _device->SetStreamSource(0, _vertexBuffer, 0, sizeof(CUSTOMVERTEX));
    _device->SetFVF(D3DFVF_CUSTOMVERTEX);

    _device->SetIndices(_indexBuffer);
    _device->DrawIndexedPrimitive(D3DPT_TRIANGLESTRIP, 0, 0, _vertexCount, 0, _primitiveCount);
    avec
    #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_TEX1)

    Et je ne sais pas quel est l'etat du device avec lequel il faut jouer pour attacher correctement ma texture :/

  4. #4
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 540
    Par défaut
    Salut Lilin je ne suis pas un grand expert Direct 3d
    as-tu regardé les différentes possibilités de SetTextureStage et DTEXTURESTAGESTATETYPE dans le SDK ?
    Peut-être que tu attaches mal la texture sur u et v.
    Dans le livre de Di Luna voilà ce qu'il utilise comme structure :
    struct Vertex
    {
    Vertex(){}
    Vertex(
    float x, float y, float z,
    float nx, float ny, float nz,
    float u, float v)
    {
    _x = x; _y = y; _z = z;
    _nx = nx; _ny = ny; _nz = nz;
    _u = u; _v = v;
    }
    float _x, _y, _z;
    float _nx, _ny, _nz;
    float _u, _v; // texture coordinates

    static const DWORD FVF;
    };
    const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    J'ai regardé un peu de ce coté, mais rien de bien concluant :/

    Ca devrait pouvoir se faire a travers un shader, mais je trouve ca vraiment bizarre de devoir utiliser un pipeline programmable pour faire un truc si "simple".

    Quelqu'un aurait une idée pour y arriver plus simplement ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    En demandant de l'aide sur un autre forum, je me suis rendu compte que mon illustration etait fausse !

    Je cherche plutot a atteindre ce resultat :

Discussions similaires

  1. Trier une Map sur les valeurs de façon décroissante
    Par ddams dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 27/12/2011, 18h33
  2. Réponses: 5
    Dernier message: 06/04/2006, 11h46
  3. Texture Mapping
    Par EsKa68 dans le forum OpenGL
    Réponses: 1
    Dernier message: 06/04/2005, 10h13
  4. Afficher une texture "pleine" sur un support non c
    Par Mastero dans le forum DirectX
    Réponses: 20
    Dernier message: 27/01/2005, 13h28
  5. Réponses: 5
    Dernier message: 18/09/2004, 21h30

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