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 :

Problème affichage primitive


Sujet :

DirectX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 145
    Points : 55
    Points
    55
    Par défaut Problème affichage primitive
    Salut,

    J'ai crée un vertexbuffer contenant 30 polygones et je voudrais du 1 au 15 mettre une texture et du 16 au 30 en mettre une autre.

    J'ai donc fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    g_pd3dDevice->SetTexture( 0, g_pTexture[0] );
        g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(Vertex) );
    	g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
    	g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 15);
     
    g_pd3dDevice->SetTexture( 0, g_pTexture[1] );
        g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(Vertex) );
    	g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
    	g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 16, 30);
    Mais ça fonctionne pas ça me met n'importe quoi...

    Par exemple si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    g_pd3dDevice->SetTexture( 0, g_pTexture[0] );
        g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(Vertex) );
    	g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
    	g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 26);
    Il me manque 4 polygones c'est normal.
    Et si ensuite je remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    g_pd3dDevice->SetTexture( 0, g_pTexture[0] );
        g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(Vertex) );
    	g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
    	g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 26, 30);
    Je devrais normallement voir seulement les 4 polygones qui manquaient avant, mais en fait il y en a une dizaine ...

  2. #2
    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
    Le plus important lorsqu'on utilise une API est de bien lire sa doc.

    Citation Envoyé par La doc du SDK
    Syntax

    HRESULT DrawPrimitive( D3DPRIMITIVETYPE PrimitiveType,
    UINT StartVertex,
    UINT PrimitiveCount
    );

    Parameters

    PrimitiveType
    [in] Member of the D3DPRIMITIVETYPE enumerated type, describing the type of primitive to render.

    StartVertex
    [in] Index of the first vertex to load. Beginning at StartVertex the correct number of vertices will be read out of the vertex buffer.

    PrimitiveCount
    [in] Number of primitives to render. The maximum number of primitives allowed is determined by checking the MaxPrimitiveCount member of the D3DCAPS9 structure. PrimitiveCount is the number of primitives as determined by the primitive type. If it is a line list, each primitive has two vertices. If it is a triangle list, each primitive has three vertices.
    En l'occurence tu confonds vertex et primitive. Ton buffer contient 30 sommets ou 30 triangles ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 145
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup !!!
    Je pensais pas que ça fonctionnait comme ça ...

    Où est ce que je peux trouver la doc du SDK ??? Sur MSDN ???

  4. #4
    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
    Citation Envoyé par goutbouyo
    Où est ce que je peux trouver la doc du SDK ??? Sur MSDN ???
    Dans le SDK. Sinon oui, dans la MSDN.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 145
    Points : 55
    Points
    55
    Par défaut
    Ok merci encore !!!

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. Problème affichage suite jointure
    Par xavier1977 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/07/2005, 15h00
  3. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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