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 :

VertexBuffer d'un Mesh modifiable dynamiquement ?


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 14
    Points
    14
    Par défaut VertexBuffer d'un Mesh modifiable dynamiquement ?
    Salut

    Pour mes débuts avec DirectX (couplé à C#), j'aimerai faire un espece de serpentin qui évolue en suivant une courbe (Catmull-Rom), un peu à l'image de l'invitation de Moppi pour l'Assembly'04 (pour ceux qui connaissent).

    En fait, je voulais juste savoir s'il était possible de faire varier dynamiquement la taille du vertexBuffer (et de l'indexBuffer par la même occasion) d'un mesh.

    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 : 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
    Non, les VB/IB ont une taille fixe. Il te faudra prévoir une taille maximum ou bien (comme conseillé dans la doc du SDK) prévoir une taille optimale et faire ton rendu en plusieurs fois.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Loulou24
    ou bien (comme conseillé dans la doc du SDK) prévoir une taille optimale et faire ton rendu en plusieurs fois.
    Comment ça ? Faire un rendu du mesh, modifier ces VB/IB et refaire un rendu ?

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Mais au fait, est-il possible de modifier un VB ou un IB ? Ou bien dois-je le remplacer en en créant un autre ?

  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
    Pourquoi travailler avec une mesh si c'est toi qui définit la géometrie ? Bosse directement sur le VB/IB, fais ton rendu toi-même.

    Tu peux modifier le contenu des buffers s'ils sont créés dynamiquement (flag D3DUSAGE_DYNAMIC), puis en les verrouillant/déverrouillant. Mais tout ceci est bien expliqué dans la doc

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Ok Merci beaucoup

  7. #7
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 99
    Points : 115
    Points
    115
    Par défaut
    Tu peux aussi appliquer un vertex shader au mesh. Le shader effectuera les deformations. Par contre, le nombre de vertices ne pourra pas changer.

    C'est ainsi que je deforme mon tunnel dans ma demo "vortex" dispo ici en exe, mais le shader est present en source vs.1.1 :

    http://www.jeux-directx.com/downloads/Payload/Vortex.zip

    La geometrie du tunnel ( vaguement un cylindre ) est construite statiquement et le shader deforme, donc pas de locks et peu de calculs sur le CPU, donc c'est rapide.

    Le source code est dispo sur le projet SxDL sur Source Forge. Voir dans le CVS.
    Laurent -- http://jeux-directx.com/

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Merci, mais pas tout en même temps.
    Je vais déjà prendre le temps de maîtriser les VB/IB. De plus je dévellope pour l'instant sur un portable avec une carte 3D Intel assez peu puissante. Probablement sans pixel ni vertex shaders.

    J'ai essayé Vortex, et chez moi, une image s'affichait toute les 10 secondes.

Discussions similaires

  1. [C#] Modifier dynamiquement un header de DataGrid
    Par Marcin dans le forum ASP.NET
    Réponses: 4
    Dernier message: 08/07/2005, 10h46
  2. Réponses: 1
    Dernier message: 27/05/2005, 09h52
  3. Modifier dynamiquement le style d'un textarea
    Par AlLutun dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/11/2004, 15h18
  4. Réponses: 7
    Dernier message: 25/10/2004, 10h59
  5. [Applet] Modifier dynamiquement la mise en page
    Par Amnesiak dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 28/09/2004, 11h49

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