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 :

Question sur les VertexBuffer


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Par défaut Question sur les VertexBuffer
    Bonjour,

    je souhaiterais mettre dans un VertexBuffer (déclaré dynamique) les vertices d'un nombre variable d'objets, de façon à pouvoir y ajouter et y supprimer des objets (plus exactement les vertices correspondant à ces objets). Ceci implique un changement de la taille du VertexBuffer, or je n'ai pas vu dans la doc une méthode permettant de réaliser cela! Alors, est-ce que j'ai mal cherché, est-ce que c'est tout simplement impossible (mais alors, que signifie un VertexBuffer dynamique???)
    Merci d'avance!

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Un vertex buffer dynamique signifie simplement que tu pourras modifier son contenu à la volée, pas sa taille. Celle-ci sera toujours fixe. Mais je pense que ton approche est mauvaise, regarde bien les exemples et la doc du SDK tu verras mieux comment les VB fonctionnent.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Par défaut
    Je ne pense pas que mon approche soit mauvaise, mais je suis partant pour en discuter
    Si je veux faire des VB à taille variable, c'est parceque leur utilisation "classique", c'est-à-dire 1 VB par objet, ne me convient guère pour ce que je veux faire : je ne fais pas vraiment un jeu en 3D, je travaille sur un seul plan et mes objets sont de simples rectangles, donc 4 vertice en triangle fans. Je trouve que ce serait abusif de créer des tonnes de VB qui ne contiendraient chacun que 4 petites vertice. D'où mon souhait de faire que deux ou trois, voire un seul VB mais de taille dynamique.
    Cependant merci pour la précision de ce flag "dynamique"

    Pour mon problème, c'est bon il est quasiment réglé, j'ai discuté avec quelqu'un ayant construit une classe de VB dynamique (au sens taille variable) et qui m'a montré son code. Si ça intéresse quelqu'un, n'hésitez pas à me contacter.

    a+
    Joel

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    L'approche conseillée dans la doc (et peut-être celle sur laquelle se base le code de ton ami ?) c'est de construire un buffer dynamique d'une taille fixée optimale, puis de le remplir / afficher / vider (plusieurs fois) à coups de DISCARD et NOOVERWRITE.

    Ca doit pas être très clair mais la doc du SDK l'est beaucoup plus

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Par défaut
    Si c'est très clair, et ce n'est pas du tout l'approche qu'on m'a proposée. D'après ce que tu dis, ça veut dire qu'il faudrait stocker les vertices ailleurs que dans le buffer (ou les recalculer à la volée) pour pouvoir le re-remplir avec ces vertices, au moment de l'affichage.

    Dans le morceau de code qu'on m'a passé, l'approche est bien différente : on créé initialement un VB de taille suffisante mais pas trop grande (pour éviter le gâchi), puis au fur et à mesure de l'évolution du jeu, où les besoins en vertice peut croitre, lorsque le buffer devient trop petit on le détruit carrément (on sauvegardant les vertice quelque part), puis on en reconstruit un plus gros et on y remet les vertice sauvegardées + celles qu'on voulait ajouter. C'est bourrin, ce n'est sans doute pas la meilleure chose à faire dans tous les cas mais pour mon jeu, qui ne sera pas en temps réel (et donc les destructions/constructions de VB ne devraient pas être perceptibles pour le joueur), je pense que ça devrait faire l'affaire. L'avantage, c'est qu'on n'a pas à dupliquer les données des vertice ou à les recalculer à chaque fois.

  6. #6
    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 : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    En fait il faut voir le contexte. Ta solution sera meilleure pour des pré-traitements (en dehors de la boucle de jeu), moi je te donne la méthode à utiliser si tes données changent toutes les frames.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Par défaut
    Entièrement d'accord

Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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