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 :

Un VBO par objet 3D ?


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Points : 39
    Points
    39
    Par défaut Un VBO par objet 3D ?
    Bonsoir,

    je débute un peu en OpenGL, même si je suis parvenu à effectuer mes premiers dessins cubes/pyramides/trucs plats ; je m'attache à tenter de bien comprendre la construction de scène, avant de me plonger dans des thèmes comme l'éclairage.

    Jusqu'ici, je construisais mes scènes avec les traditionnels glVertex*. Il semble que cette méthode soit peu performante, et assez rapidement je suis tombé sur le concept de VBO. Je me pose alors une question : est il possible de créer autant de VBO qu'on le souhaite, ou du moins beaucoup ? Plus exactement, je vois dans les tutos comment on crée et utilise un VBO. Sauf qu'à chaque fois, on parle d'un seul VBO, voire 2 ; or une scène 3D peut comporter pleins d'objets en 3d. Je me demande donc s'il est possible de créer un VBO par objet 3D,que ça soit pour représenter par exemple une maison, un banc, etc...bref des objets génériques qu'on stocke une fois en mémoire et qu'on réutilise plusieurs fois dans un rendu ; ou bien s'il fallait limiter le nombre de VBO, c'est à dire rassembler tous les polys d'une scène, ou presque, au sein d'un nombre limité de VBO, et ensuite se débrouiller avec les fonctions gldrawelement et compagnie, pour dessiner au fur et à mesure les polys dont on a besoin.

    Merci pour votre réponse, en espérant avoir été assez clair dans ma question...

  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
    Points : 15 920
    Points
    15 920
    Par défaut
    Un VBO par objet me paraît une bonne base pour débuter. Après, les magouilles dont tu parles sont bonnes pour optimiser par rapport à un contexte bien précis, mais avant d'en arriver là tu as du chemin.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Points : 39
    Points
    39
    Par défaut
    Merci pour la rapidité de la réponse .

    J'avais une autre question, qui découle de la suivante : est ce qu'on peut ajouter des VBOs à la volée ?

    En effet, je lis une très mystérieuse fonction glGenBuffers à utiliser dans le cadre des VBOs. Problème, elle demande un paramètre entier pour générer le nombre de VBO stockés, ce qui veut donc dire que ça "fixe" indirectement le nombre de VBO à l'avance, non ? A moins de passer par des manipulations peu naturelles, qui consistent à regénérer un tableau d'identifiant VBO à chaque fois qu'on ajoute un objet en 3D...

  4. #4
    Invité
    Invité(e)
    Par défaut
    glGenBuffers() créé des VBOs t'en veux 10 tu lui en demande 10... t'en veux 10 de plus, tu lui en redemande 10. ça ne fixe absoluement pas le nombre de VBOs que tu peux creer.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Points : 39
    Points
    39
    Par défaut
    Oui mais si j'en ai 10 de déjà créé, et que j'en veux 20, je peux faire un appel de glgenbuffers sur un GLsize de 10, et traité le pointeur second paramètre à part du premier, ou bien il faut que je détruise le premier pointeur de VBO, et réappeler glgenbuffers avec un GLsize de 20 ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    glGenBuffers() te renvoie simplement les identifiants qu'il viens de creer, si tu en veux 10, puis 10 autres, tu fait tes 2 appels simplement. chaque appel est indépendant.

Discussions similaires

  1. [A-00] Récupération de données par Objet Recordset
    Par Domdrum dans le forum VBA Access
    Réponses: 16
    Dernier message: 06/01/2009, 21h17
  2. Réponses: 3
    Dernier message: 14/04/2008, 17h33
  3. cours de programmation par objet
    Par tanguy.L dans le forum Langage
    Réponses: 1
    Dernier message: 02/02/2008, 19h37
  4. Génération de script (un fichier par objet)
    Par karami dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/04/2007, 20h30
  5. [Profiling] Mémoire utilisée par objet java
    Par Bicnic dans le forum Général Java
    Réponses: 2
    Dernier message: 05/01/2006, 09h52

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