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

OpenGL Discussion :

OpenGL et déclarations de vertex


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Par défaut OpenGL et déclarations de vertex
    Bonsoir,

    quelqu'un aurait-il une idée de la façon d'émuler les déclarations de vertex et les streams de Direct3D en OpenGL?

  2. #2
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Je ne connais pas vraiment bien direct3d (et donc je ne comprends pas exactement ton besoin) mais ceci permet d'utiliser une convention direct3d
    http://www.opengl.org/sdk/docs/man4/...kingVertex.xml

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je connais pas les "streams" de Direct3D mais pour les déclaration de vertex j'ai une classe qui retient des triplets (type, taille, nombre, stride) pour chaque attribute et qui fait appel aux bon glMachinPointer quand il faut.

    A toi d'assurer ensuite que ton type de vertex effectif correspond avec ce format.

    Tu peux changer de format à chaque frame si tu veux, c'est orthogonal avec les données elle-mêmes contenues dans un buffer.

  4. #4
    Membre très actif
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Par défaut
    Citation Envoyé par ponce Voir le message
    Je connais pas les "streams" de Direct3D[B]
    l'équivalent d'un vbo (vboid) : par exemple tu peux stocker uniquement tes positions sur un vertex buffer que tu références par 0, puis tes normales sur le buffer 1, les texcoords sur le 2, etc... on appelle chacun de ces buffers un stream

    tu peux aussi entrelacer positions et normales sur un même stream et le reste des attributs sur d'autres buffers et binder/dessiner le tout à chaque frame

    mais pour les déclaration de vertex j'ai une classe qui retient des triplets (type, taille, nombre, stride) pour chaque attribute et qui fait appel aux bon glMachinPointer quand il faut.

    A toi d'assurer ensuite que ton type de vertex effectif correspond avec ce format.
    oui j'ai fait moi aussi une classe de déclaration de vertex qui décrit les attributs;
    mais comment gères tu tes vertex buffers ? tu les regroupes au sein d'une classe, tu les références ?

    Tu peux changer de format à chaque frame si tu veux, c'est orthogonal avec les données elle-mêmes contenues dans un buffer.
    tu veux dire que sur la frame t je peux remplir un buffer par des triplets de 3 floats puis à la frame t+1 par des doublets de unsigned int ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par coda_blank Voir le message
    tu peux aussi entrelacer positions et normales sur un même stream et le reste des attributs sur d'autres buffers et binder/dessiner le tout à chaque frame
    Tu peux faire exactement la même chose avec les VBO, mettre normales et couleurs dans un et position dans l'autre par exemple.

    Citation Envoyé par coda_blank Voir le message
    oui j'ai fait moi aussi une classe de déclaration de vertex qui décrit les attributs;
    mais comment gères tu tes vertex buffers ? tu les regroupes au sein d'une classe, tu les références ?
    J'ai une classe VBO<T> (pas très bien nommée en fait) qui référence un tableau de T, un format de Vertex qui correspond a T et un buffer OpenGL bindé sur la target qui va bien. Je gère pas les index par contre, j'en ai pas encore eu besoin.

    tu veux dire que sur la frame t je peux remplir un buffer par des triplets de 3 floats puis à la frame t+1 par des doublets de unsigned int ?
    Oui.

    Je veux dire que le buffer utilisé comme VBO et le format de vertex (ie les glMachinPointer) sont sélectionnés indépendamment, l'un peut changer sans changer l'autre. Un buffer OpenGL tout seul ne connait pas le type des données qu'il contient (il se base éventuellement sur la target à laquelle tu le binde pour savoir si il contient des texels, des vertex ou des indices).

  6. #6
    Membre très actif
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Par défaut
    Citation Envoyé par ponce Voir le message
    Tu peux faire exactement la même chose avec les VBO, mettre normales et couleurs dans un et position dans l'autre par exemple.


    J'ai une classe VBO<T> (pas très bien nommée en fait) qui référence un tableau de T, un format de Vertex qui correspond a T et un buffer OpenGL bindé sur la target qui va bien. Je gère pas les index par contre, j'en ai pas encore eu besoin.


    Oui.

    Je veux dire que le buffer utilisé comme VBO et le format de vertex (ie les glMachinPointer) sont sélectionnés indépendamment, l'un peut changer sans changer l'autre. Un buffer OpenGL tout seul ne connait pas le type des données qu'il contient (il se base éventuellement sur la target à laquelle tu le binde pour savoir si il contient des texels, des vertex ou des indices).
    mais dans ton moteur, cette classe VBO<T> est bien référencée par d'autres classes ou stockée dans une collection, non ?

  7. #7
    Membre très actif
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Par défaut
    Citation Envoyé par MatRem Voir le message
    Je ne connais pas vraiment bien direct3d (et donc je ne comprends pas exactement ton besoin) mais ceci permet d'utiliser une convention direct3d
    http://www.opengl.org/sdk/docs/man4/...kingVertex.xml
    c'est pour OpenGL3.2, je suis sur 2.1

    et puis je ne vois pas trop le rapport

Discussions similaires

  1. [OpenGl]Vertex Buffer et Materiaux
    Par bachir006 dans le forum OpenGL
    Réponses: 4
    Dernier message: 28/06/2008, 12h35
  2. Réponses: 1
    Dernier message: 11/05/2007, 19h36
  3. Performances OpenGL, Vertex Array, (VBO ?)
    Par Burckel dans le forum OpenGL
    Réponses: 6
    Dernier message: 07/03/2007, 10h40
  4. Vertex Déclaration
    Par mister3957 dans le forum DirectX
    Réponses: 2
    Dernier message: 26/03/2006, 11h25
  5. Tableau de vertex dans OpenGL
    Par Guizmo57 dans le forum OpenGL
    Réponses: 5
    Dernier message: 11/04/2004, 09h15

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