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 :

[DX9][C#] Affichage cube avec vertex buffer


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Par défaut [DX9][C#] Affichage cube avec vertex buffer
    Salut !!

    Voilà je cherche à contuire un mesh constitué de cube de manière par rapport à certains paramètres saisis en entré.

    J'ai fais un système d'offset qui permet de placer les cube à des coordonées différents pour par qu'ils soient tous supperposés les uns sur les autres.
    Mon problème c que je n'arrive pas à afficher mes cubes ?
    Comment et dans quoi faut-il les enregistrer ?
    Merci.

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je n'ai pas très bien compris ton problème. Tu as mis au point le système de placement des cubes, mais tu n'arrives pas à les afficher ?

    En gros deux solutions :

    - Tu calcules les coordonnées de tous tes cubes et tu les places tous dans un gros vertex buffer qui ne bougera plus.

    - Tu calcules une matrice de transformation pour chaque instance de ton cube, mais tu affiches toujours la même géometrie (8 sommets dans ton vertex buffer).

    Par ailleurs, ton lien est cassé (les "..." sont présents dans l'URL).

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Par défaut
    Ok je pense voir à peu près comment faire.
    De toute manière je ne peux travailler que sur un seul vertexbuffer à la fois ?
    Je sais pas si il est possible de créer un vertexbuffer pour chaque cube ?
    Est-ce plus intéressant, ou dois-je plutot faire (comme tu le dis) avec une seul vertexbuffer ?
    Quel méthode sera la mieux optimisée ?

    Merci pour ton avis.

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Par défaut
    Bon j'ai toujours mon problème ...

    Après l'appel de la fonction qui me créer un cube, je fais un vertexbuffer.SetData(vert, 0, LockFlags.None); pour mettre à jour mon vertexbuffer.
    Le fait de faire ça après chaque création écrase t-il le contenu précédent ?
    Ne vais-je pas avoir au final que le dernier cube créer ?
    Comment faire pour tout créer et mettre à jour le vertexbuffer que quand tout a été créer ?

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    De toute manière je ne peux travailler que sur un seul vertexbuffer à la fois ?
    Pourquoi ?

    Je sais pas si il est possible de créer un vertexbuffer pour chaque cube ?
    Pourquoi pas ?

    Est-ce plus intéressant, ou dois-je plutot faire (comme tu le dis) avec une seul vertexbuffer ?
    Quel méthode sera la mieux optimisée ?
    Un tas de vertex buffers de 8 sommets chacun, c'est à peu près ce qu'on peut faire de pire. Utilise un seul buffer de 8 sommets, ou un seul de N sommets, mais un seul quoiqu'il arrive.

    Le fait de faire ça après chaque création écrase t-il le contenu précédent ?
    Je ne comprends pas ce que tu veux dire. Si tu effectues à chaque fois une nouvelle création, que voudrais-tu écraser ?

    Comment faire pour tout créer et mettre à jour le vertexbuffer que quand tout a été créer ?
    Commençons par le commencement : comment crées-tu ton cube ?

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 113
    Par défaut
    J'ai repris le code trouvé :

    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    private void OnVertexBufferCreate(object sender, EventArgs e)
    {
    	    CustomVertex[] verts = new CustomVertex[numVerts]; // 36 ici
     
    			//triangle 1
                verts[0] = CreateVertex(-100, -100, -100, 0, 0);
                verts[1] = CreateVertex(100, -100, -100, 1, 0);
                verts[2] = CreateVertex(-100, 100, -100, 0, 1);
     
    			//triangle 2
                verts[3] = CreateVertex(-100, 100, -100, 0, 1);
                verts[4] = CreateVertex(100, -100, -100, 1, 0);
                verts[5] = CreateVertex(100, 100, -100, 1, 1);
                ....
                ....
                verts[33] =  CreateVertex(-100, 100, 100, 0, 1);
    	    verts[34] =  CreateVertex(100, 100, -100, 1, 0);
    	    verts[35] =  CreateVertex(100, 100, 100, 1, 1);
     
    	    vertexBuffer.SetData(verts, 0, LockFlags.None);
     
    }

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

Discussions similaires

  1. problème d'affichage d'un vertex buffer
    Par manimouleLight&Magic dans le forum OpenGL
    Réponses: 3
    Dernier message: 26/02/2008, 17h02
  2. Réponses: 3
    Dernier message: 11/04/2006, 09h37
  3. [Debutant] Affichage du contenu d'un vertex buffer
    Par Edouard Kaiser dans le forum DirectX
    Réponses: 12
    Dernier message: 20/12/2005, 10h26
  4. Cube avec 8 Vertex + textures
    Par mister3957 dans le forum DirectX
    Réponses: 2
    Dernier message: 23/11/2005, 23h31
  5. Probleme avec le vertex buffer
    Par nicoo dans le forum DirectX
    Réponses: 12
    Dernier message: 19/10/2004, 21h45

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