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 :

Problème de rendu des VBO


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 70
    Par défaut Problème de rendu des VBO
    Bonjour à tous,

    Voici mon petit problème, OpenGL étant peu bavard, je n'arrive pas déterminer ou se trouve mon erreur.

    Donc j'ai principalement deux géométries VBO à afficher, la première est un terrain composé d'un buffer pour les vertices (GL_ARRAY_BUFFER) et de plusieurs autres buffer (GL_ELEMENT_ARRAY_BUFFER) pour dessiner en GL_QUAD_STRIP.

    Et une deuxième geométrie, avec un buffer pour les vertices et un autre pour les indices de constructions (ici en GL_TRIANGLES).

    Quand je demande a OpenGL de dessiner avec glDrawElements() séparement les géométries, tout roule. Mais si je lui demande de dessiner, le terrain avec l'objet sur un même rendu, on dirait qu'il mixe les VBO...

    Pourtant, je bind à chaque fois les différents buffers nécessaires, celui des points et celui des indices, avant d'appeler glDrawElements(). Mais rien y fait.

    Voici la procédure de rendu pour chacune des géometries :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	glEnableVertexAttribArray(NV_VERTEX_ID);
    	glEnableVertexAttribArray(NV_NORMAL_ID);
    	glEnableVertexAttribArray(NV_COLOR_ID);
     
    	glBindBuffer(GL_ARRAY_BUFFER, geo->ID[0]);
    	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, geo->ID[1]);
     
    	glDrawElements(GL_TRIANGLES, geo->indicesCount, GL_UNSIGNED_INT, NULL);
     
    	glDisableVertexAttribArray(NV_VERTEX_ID);
    	glDisableVertexAttribArray(NV_NORMAL_ID);
    	glDisableVertexAttribArray(NV_COLOR_ID);
    Est-ce que j'ai oublié quelque chose ?

    Note : pour le terrain, j'ai juste une boucle autour de glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, xxx) et glDrawElements() en plus.
    Note 2 : c'est en C sous Linux

    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 70
    Par défaut Trouvé
    J'ai trouvé, il faut redéfinir a chaque fois les pointers, je pensais qu'il suffisait juste de les spéficier à la création du buffer.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/08/2013, 18h13
  2. Réponses: 3
    Dernier message: 13/08/2010, 07h10
  3. Problème de rendu des couleurs
    Par ram-0000 dans le forum OpenGL
    Réponses: 6
    Dernier message: 08/04/2008, 08h46
  4. Problème de rendu avec des listes
    Par Erwane dans le forum Scheme
    Réponses: 19
    Dernier message: 03/03/2008, 21h27
  5. Problème avec l'utilisation des VBO
    Par Ekinoks dans le forum OpenGL
    Réponses: 12
    Dernier message: 09/07/2006, 18h42

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