Précédent   Forum des professionnels en informatique > Applications > Développement 2D, 3D et Jeux > API graphiques > OpenGL
OpenGL Forum d'entraide sur le développement en OpenGL. Avant de poster -> FAQ OpenGL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2012, 00h52   #1
Invité régulier
 
Homme
Développeur de jeux vidéo
Inscription : juillet 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juillet 2011
Messages : 9
Points : 6
Points : 6
Par défaut Mélanger Affichage Direct et VBO

Bonjour à tous,

Je cherche en ce moment un moyen pour afficher une grille (lignes 3D) dans le plan XZ et malheureusement je n'arrive pas à faire passer le code sans avoir un "accès mémoire invalide".

Malheureusement, malgré toutes les recherches effectuées jusqu'ici aucun exemple ne passe par les VBO pour le dessin de lignes colorées (grise par défaut mais l'utilisateur peut choisir une autre couleur). Le dessin est toujours fait en mode direct. Pour le moment le code ressemble à ceci mais ça fonctionne pas.

Code :
1
2
3
4
5
6
  glColor4fv(GridColor)
  glLineWidth(GridLineWidth) 
  glEnableClientState(GL_VERTEX_ARRAY)
  glBindBuffer(GL_ARRAY_BUFFER, &GridBufferObjectID)
  glDrawElements(GL_LINES, GridPointCount, GL_UNSIGNED_INT, 0)
  glDisableClientState(GL_VERTEX_ARRAY)
Je me demande donc si la chose est tout simplement possible. Où alors je vais devoir faire un petit mix des modes d'affichage direct et d'affichage par VBO puisqu'un modèle 3D sera également dessiné par dessus la grille.

Merci à l'avance.
SuperGénie
SuperGénie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 00h50   #2
Responsable 2D/3D/Jeux

 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Étudiant
Inscription : mai 2008
Messages : 6 560
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 6 560
Points : 14 054
Points : 14 054
Bonjour,

Pour le mix, je ne sais pas. Je dirai que c'est soir la méthode VBO, soit la vieille méthode (pipeline fixe -> glBegin() / glEnd()).

Pour les VBOs, nous avons un exemple ici et . Ce que je peux dire, c'est que j'avais fait un programme qui dessinait une grille.
Le dernier point que j'ai à dire est que si votre couleur est unie pour toute la grille, ne la mettez pas dans le VBO et passez là simplement en uniform à votre shader.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/01/2012, 05h39   #3
Invité régulier
 
Homme
Développeur de jeux vidéo
Inscription : juillet 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juillet 2011
Messages : 9
Points : 6
Points : 6
Bonjour LittleWhite,

Ce que je cherche à faire c'est un logiciel similaire à Ultimate Unwrap 3D mais avec des fonctionnalités supplémentaires mais surtout créé pour fonctionner sous Linux, le tout programmé avec PureBasic.

Dans UU3D, les grilles ne sont que des repères visuels alors que dans mon programme elles joueront également ce rôle en plus d'offrir un système de point aimanté (un grid-snap en bon français) similaire à celui qu'il y a dans Rhinoceros 3D par exemple.

Mais dans le cas d'un logiciel d'édition l'utilisation des VBO je ne suis pas certain que ce soit vraiment nécessaire parce que la performance d'affichage n'est pas prioritaire. Je vois plutôt leurs utilisation comme une pratique pour le jeu qui suivra par la suite.

Ceci étant dit, j'avais déjà regardé les exemples que tu propose mais aucun d'entre eux montre une utilisation combinée de "GL_LINES" + "VBO" + "Shaders". Parfois il y a un petit détail insignifiant qui fait en sorte que ça plante mais là je ne trouve pas ce qui cloche. J'espère qu'un exemple est présenté dans le livre : "OpenGL SuperBible" 5e édition que je vais commander prochainement étant donnée que je n'y ai plus accès depuis la fin des études universitaires.

Merci à toi d'avoir répondu.

A+
SuperGénie
SuperGénie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 08h07   #4
Responsable C++
 
Homme Guillaume Belz
Biochimiste
Inscription : novembre 2008
Messages : 2 872
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Belz
Âge : 36
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Biochimiste
Secteur : Santé

Informations forums :
Inscription : novembre 2008
Messages : 2 872
Points : 12 951
Points : 12 951
Bonjour

Dans mon tutoriel sur OpenGL, j'ai utilisé sans problème un mix des 3 (directe pour afficher le repère orthonormé et VBO-shader pour le sol) : le mode direct et les VBO
__________________
Vous souhaitez rejoindre l'équipe de bénévoles qui fait vivre Developpez (traduction, rédaction, modération) ? Contactez moi par MP.

Ma page personnelle avec la liste de mes articles - Mon blog sur la programmation des GPU.

Je suis régulièrement sur le chat pour les questions C++/Qt.
gbdivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 09h55   #5
Responsable 2D/3D/Jeux

 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Étudiant
Inscription : mai 2008
Messages : 6 560
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2008
Messages : 6 560
Points : 14 054
Points : 14 054
Dans l'exemple de mon programme, c'est un GL_LINES avec shader et VBO et FBO.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 15h14   #6
Invité régulier
 
Homme
Développeur de jeux vidéo
Inscription : juillet 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : Développeur de jeux vidéo

Informations forums :
Inscription : juillet 2011
Messages : 9
Points : 6
Points : 6
Bonjour à tous,

À la lumière de vos indications, je me prend un peu trop le pompon pour rien. Donc les éléments de type ligne ce feront en affichage direct et le modèle 3D en cour d'édition ce sera des VBO, NBO, UVBO et IBO créé en mode #GL_STREAM_DRAW ou #GL_DYNAMIC_DRAW. De cette façon je pourrai modifier les informations plus facilement en effectuant une mise à jour sur l'élément concerné :

- Le VBO pour une transformation 3D (1 ou plusieurs combiné)
- En fonction des transformations appliquées au VBO refaire le calcul du NBO
- Le UVBO dans le cas de manipulation du UVMapping
- Le IBO lui ne changera pas à moins d'ajouter ou d'enlever des triangles dans le modèle

Merci pour vos réponses.

A+
SuperGénie
SuperGénie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h25.


 
 
 
 
Partenaires

Hébergement Web