[OpenGL] Display lists: portée et passage en parametre

Le côté programmation du développement d'un jeu vidéo.

Display lists: portée et passage en parametre

Messagepar Zarelion » 28 Nov 2009, 00:36

Yo yo yo, je déboule, un peu à l'arrache somme toute, j'ai pas vu de section présentation ou bisutage alors je rentre direct dans le vif du sujet.

Je code mon ptit jeu en 3D et je voulais me mettre aux display lists, pas trop le choix en meme temps. La plupart des tutos du web étant nuls a ce sujet et n'ayant pas encore reçu le bouquin des mecs de gamedev.net je seche...

je fais ma petite

Code: Tout sélectionner
GLuint list = glGenLists(1);


je la passe en parametre de ma fonction:

Code: Tout sélectionner
void afficher (GLuint list)


dans laquelle je fais mon glCallList

ça plante pas mais ça m'affiche peau de balle, c'est quoi ce GLuint? C'est un handle?

Je devrais plutot passer un pointeur dessus en parametre?

Je peux pas faire de

Code: Tout sélectionner
class level
{
private:
vector<GLuint> models;
}


ducoup?

peut etre un
Code: Tout sélectionner
vector<GLuint> *models

serait plus approprié mais ça fait ch*** de flanquer des pointeurs dans de l'objet.

Si un gourou de la chose passait dans le coin pour m'illuminer sur le sujet je lui en serait grandement reconnaissant :00000020:
Zarelion
Hello World, I'm new !
 
Messages: 2
Inscription: 28 Nov 2009, 00:06

Messagepar deathangel » 28 Nov 2009, 10:57

salut, bienvenue sur le GCN !

Alors ton GLuint est en fait un simple unsigned int redéfini par OpenGL, si tu regardes les headers opengl, tu dois avoir quelque part un
Code: Tout sélectionner
 typedef unsigned int GLuint


Cet entier représente alors un numéro en mémoire ou se situe l'ensemble de tes appels de tes commandes OpenGL qui affichent ton objet, donc ta fonction
Code: Tout sélectionner
 void afficher (GLuint liste)

devrait fonctionner sans problème.

ton vector<GLuint> models est donc correct si tu veux stocker tous tes objets dedans.

Poste le reste de ton code si tu veux que je regarde plus en détails ou ca pourrait poser problème.
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar valentin » 28 Nov 2009, 11:48

Juste au cas où tu dis utiliser GLuint list = glGenLists(1);

Ok mais n'oublie pas la suite pour remplir ton display list:

Code: Tout sélectionner
 
glNewList( list, GL_COMPILE );
{C'est ici que l'on conçoit ce que l'on veut que la liste contienne}
glEndList();


Je pense que tu l'avais fait mais c'est juste au cas où.
Et de Les Display List c'est bien , mais les VBOs cest mieux...
Avatar de l’utilisateur
valentin
Hello World, I'm new !
 
Messages: 494
Inscription: 20 Mai 2008, 16:10
Localisation: GRENOBLE

Messagepar Zarelion » 28 Nov 2009, 15:19

Merci pour la bienvenue ^^ ca fait pas mal de temps que je lis votre forum et j'apprécie beaucoup l'ambiance et les projets, autant que le fait que RM n'y soit pas omniprésent.:D

Pour en revenir aux display lists alors enfait c'est juste un index sur une commande stockée dans la carte graphique/surcouche openGL, d'acc !

ta fonctionn devrait fonctionner sans problème.


Une réponse qu'on aimerait avoir plus souvent n'est-ce pas? :D J'ai peut être fait une boulette quelque part je vais revérifier ça, je t'épargne la recherche (pour cette fois :00000031: ) de toute manière maintenant que je sais que ca viens pas de l'appel ca peux pas venir de mille choses.

Ok mais n'oublie pas la suite pour remplir ton display list:


mdr je l'avais mis mais tu fais bien de le préciser c'est bien le genre d'étourderie qui peut arriver.

Et de Les Display List c'est bien , mais les VBOs cest mieux...


Pas mal la réclame :D

Non enfait pour raconter un peu ma vie, plutôt que de faire un projet du haut vers le bas: vouloir faire un jeu donc apprendre a programmer. Je fais l'inverse, j'apprends et j'exploite en faisant des bouts de code standards qui me serviront plus tard, bien sûr j'ai une idée du jeu que je veux faire mais un pas à la fois.

Pour le moment enfait j'ai crée un logiciel qui converti les .obj en appels opengl (GlVertex etc...) puis je copie ça en dur dans le code, donc les display liste se sont imposées naturellement, pour le moment ça me suffit.

Mais c'est clair que le rêve pour plus tard ce sera: le plugin blender en python qui exporte les descriptions d'objets et d'animations , puis la fonction de chargement qui me sert ça sur un plateau dans des vertex arrays ou vertex buffers, comme les pros quoi.

En tout cas encore merci pour votre aide.
Zarelion
Hello World, I'm new !
 
Messages: 2
Inscription: 28 Nov 2009, 00:06


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron