Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[DEV-C++] -> OPENGL : VBO'S (KEYFRAME)


Information sur la source

Description

Merci de donner vos avis et conseils...

PS: Il y a un beug à la fermeture du programme que je n'arrive pas détecter. De plus ma source
n'est pas commentée (je n'aime pas çà) :(
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de acx01b le 04/01/2008 02:36:39

salut

moi j'utilise glew pour charger les extensions,
et je dois dire que pour trouver la bonne version de glext.h pour ton projet (je n'ai pas trouvé de wglext.h qui soit assez récent) j'ai mis 5 min sur google
alors que glew le premier lien sur google et c'est dans la poche

signaler à un administrateur
Commentaire de alpha le 04/01/2008 02:46:15

Ha ba je voulais mettre wglext (je crois que c'est ça que tu voulais dire?!) mais je pensais qu'il aurait été plus dur a trouver ;-)
Merci quand meme du conseil.

signaler à un administrateur
Commentaire de luhtor le 04/01/2008 11:07:55

Bon alors, tu peux nous expliquer ce qu'il fait de spécial ton code. Je vois juste des vbos on ne peut plus standard non ?

Sinon pour ton problème:
#  delete [] frames;
# frames = NULL;
# }
# //==========================================
# // !!! Probléme:
# glDeleteBuffersARB(1, &frames->vboVertices);
# glDeleteBuffersARB(1, &frames->vboNormales);
# glDeleteBuffersARB(1, &frames->vboTexCoords);

Tu détruits tes vbos après avoir "delete" frames. De plus frames est un tableau, donc, tu devrais plutot avoir:
  if (frames)
{
for (int i = 0; i < numFrames; i++)
{
....
glDeleteBuffersARB(1, frames[i].vboVertices);
glDeleteBuffersARB(1, frames[i].vboNormales);
glDeleteBuffersARB(1, frames[i].vboTexCoords);
}
delete [] frames;
frames = NULL;
}

signaler à un administrateur
Commentaire de alpha le 04/01/2008 12:26:14

Effectivement avec:

    if (frames)
    {
        for (int i = 0; i < numFrames; i++)
        {
            if (frames[i].pVertices)
            {
                glDeleteBuffersARB(1, &frames[i].vboVertices);
                delete [] frames[i].pVertices;
                frames[i].pVertices = NULL;
            }
            if (frames[i].pNormales)
            {
                glDeleteBuffersARB(1, &frames[i].vboNormales);
                delete [] frames[i].pNormales;
                frames[i].pNormales = NULL;
            }
            if (frames[i].pTexCoords)
            {
                glDeleteBuffersARB(1, &frames[i].vboTexCoords);
                delete [] frames[i].pTexCoords;
                frames[i].pTexCoords = NULL;
            }
        }
        delete [] frames;
        frames = NULL;
    }

J'ai plus de probléme merci... Mais vu que je débute en vbo je comprend pas pourquoi je fais un glDeleteBuffersARB(1, &frames[i]....); pour chaque frame vu qu'à l'initialisation j'ai créé que pour la frames[0] ?!

Sinon oui ma source montre juste des vbos standard comme tu dis avec une frame, mais je voulais savoir si ya des méthode plus éfficacé (pour plus de rapidité ou qualité) voila
merci encor ;-)

signaler à un administrateur
Commentaire de alpha le 04/01/2008 13:11:05

glLockArraysEXT, glUnlockArraysEXT : j'ai trouvé des exemples utilisant ces fonctions
alors la je suis perdu à sa sert de les rajouté à ma source?! Je trouve par la meilleur méthode pour utilisé les vbo je trouve trop de solution differente je suis un peu perdu si quelqu'un pourrai m'aider sa serai gentil, merci ;-)

signaler à un administrateur
Commentaire de luhtor le 04/01/2008 14:26:44

Oulala, j'avais pas vu en effet.
Tu fais ca: "glGenBuffersARB(1, &frames->vboVertices);"
Tu devrais faire ca: "glGenBuffersARB(1, frames[0].vboVertices);" (bien que ce soit rigoureusement équivalement)

Mais il faut initialiser tous les membres de la structure quand tu la créés et pas laisser des champs indéterminés. Si tu utilises pas frames[1].vboVertices, mets lui la valeur 0:
frames[1].vboVertices = 0;
frames[1].vboNormales = 0;
frames[1].vboTexCoords = 0;

Et lors de la destruction, tu ne détruits que les vbos qui ont été créé.
if (frames[i].vboVertices != 0)
    glDeleteBuffersARB(1, frames[i].vboVertices);
if (frames[i].vboNormales != 0)
    glDeleteBuffersARB(1, frames[i].vboNormales);
if (frames[i].vboTexCoords != 0)
    glDeleteBuffersARB(1, frames[i].vboTexCoords);

Peut etre que la fonction glDeleteBuffers ne fait rien si l'id du buffer vaut 0 mais on sait jamais. On voit ici l'intéret d'initialiser les ids de tes vbos a 0 si tu les utilises pas.

Pour les vbos en général, tu peux utiliser soit glLock/UnlockBuffer ou glBufferData. En première approche, c'est pareil. (glBufferData parfois un poil plus rapide).

"glLockArraysEXT, glUnlockArraysEXT"
=> Il me semble que ces fonctions ne concernent que les vertex arrays, donc pas les vbos.

"je trouve trop de solution differente je suis un peu perdu"
=> Oui c'est le bordel. Et on peut donc te reprocher de poster une source sur les vbos sans les maitriser totalement puisque ca peut induire en erreur des personnes qui regarderaient ton code.

signaler à un administrateur
Commentaire de luhtor le 04/01/2008 14:28:25

J'ai fais une petite erreur: "glGenBuffersARB(1, &frames[0].vboVertices);" bien sur et non:
"glGenBuffersARB(1, frames[0].vboVertices);"

De meme après, c'est des pointeurs que prend la fonction glDeleteBuffers:
if (frames[i].vboVertices != 0)
    glDeleteBuffersARB(1, &frames[i].vboVertices);
if (frames[i].vboNormales != 0)
    glDeleteBuffersARB(1, &frames[i].vboNormales);
if (frames[i].vboTexCoords != 0)
    glDeleteBuffersARB(1, &frames[i].vboTexCoords);

signaler à un administrateur
Commentaire de alpha le 04/01/2008 14:54:00

Merci pour toute ces information ça va m'aider et je vais aller me documenter sur les vbo's et je reviendrais mettre à jour cette source ;-)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Demande d'une nouvelle rubrique [ par ndj55 ] voilà,à moins que cela ne rentre dans la categorie 'graphisme' ou 'multimedia',la creation d'une rubrique OpenGL me semble etre une bonne idée,directX Catégorie OpenGL ajouté et aussi dans le forum ! [ par Arnotic ] Salut, Pas la peine de faire une révolution ! Je n'avais pas vu de message pour l'OpenGl pour ce site donc je n'en n'vais pas créé ! Maintenant il nouveau forum opengl [ par Jcom ] Un nouveau forum OpenGL français vient de s'ouvrir sur le site : www.glinfrench.fr.st (tutoriaux opengl/directx). Le forum est entièrement dédié à ope Cherche codeur(s) OpenGL / Paris [ par Kard ] Salut tout le monde :)Je suis a la recherche de codeurs OpenGL experimentés sur Paris, pour un projet de moteur un peu special.. ;)Pour plus de rensei glut - openGL [ par loss ] Quels sont les fichiers necessaires pour utiliser glut(je compile avec VC++)?Ou est ce que je peux les telecharger?Merci d avance. OpenGL [ par Garfield ] Salut à tous !!!A quel endroit est il possible de chopper la librairie&lt;glut.h&gt; qui est abscente sur mon PC.Merci d'avance@+Garfield Problème OpenGL [ par GoldenEye ] Ca ressemble à un mess déjà posé mais ce n'est pas un mess déjà poséJe veux faire un prgm avec glut. J'ai mis dans les options settings de VC++ les li Comment afficher du texte dans un fenêtre OpenGl?? [ par mastave ] Comment afficher du texte dans un fenêtre OpenGl??Et avec un police spéciale?? Objects 3D Opengl [ par mastave ] Comment inclure dans un fenêtre OpenGl un fichier 3D DXF ou3DS??? DEV-C++ : comment faire en mode opengl pour capturer les carateres tapés [ par FLASH92 ] Bonjour, mesdemoiselles, mesdames et messieursJe voudrait savoir comment faire pour capturer en opengl et en mode graphique les carateres frappés au c


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.