begin process at 2012 05 27 20:33:11
  Trouver un code source :
 
dans
 

158 commentaire(s) de luhtor sur des sources sur cppfrance

Déposé sur Ping et trace route d un url ou ip

MIKE56 => Aucun intérêt à ce qu'il soit en français.

C'est quoi toutes ces variables globales définies un peu partout ? Ok pour l'exemple, mais le   code est sale à mon gout.
Posté le : 28/07/2008 11:24:08

Déposé sur Jeu soucoupe volante en sdl

Record 565.

C'est un peu chiant la fermeture du programme dès qu'on perd. Sinon ça tourne bien.
Posté le : 17/02/2008 22:39:41

Déposé sur Exemple d'affichage multiplateforme d'un triangle (directx et...

"SDL impose d'avoir une DLL en externe or mon moteur est aussi compilé sous la forme d'une bibliothèque dynamique"
=> Avoir deux dlls, ne posent un pb particulier ?

"si ce n'est pour comparer les rendus"
=> Les rendus sont censés être rigoureusement équivalent: la somme et le produit de deux nombres fera tjs le meme résultat sous DirectX ou OpenGL (heureusement) et comme la 3D, ca ne se résume qu'a ca...

"la bonne méthode permettant d'afficher un triangle (VertexBuffers ?)"
=> Oui, il s'agit simplement d'utiliser le meme principe que DirectX.
http://www.g-truc.net/article/vbo-fr.pdf
Posté le : 22/01/2008 18:59:42

Déposé sur Exemple d'affichage multiplateforme d'un triangle (directx et...

Une question et une remarque.

La question: Je me demandais quel est l'intérêt de gérer openGL et directX:
- Si on faire un soft uniquement pour windows, alors autant faire que du DirectX.
- Si on veut faire du portable, alors autant tout faire en OpenGL.
Non ?

La remarque: Ta méthode pour afficher un triangle est openGL est un peu dépassée.
Posté le : 22/01/2008 18:28:52

Déposé sur [dev-c++] -> opengl : vbo's (keyframe)

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);
Posté le : 04/01/2008 14:28:25

Déposé sur [dev-c++] -> opengl : vbo's (keyframe)

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.
Posté le : 04/01/2008 14:26:44

Déposé sur [dev-c++] -> opengl : vbo's (keyframe)

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;
}
Posté le : 04/01/2008 11:07:55

Déposé sur Fractale de koch

Remplacé par rien. A jeter ces fonctions. Pour afficher, c'est:
glDrawElements
glDrawRangeElements

et rien d'autre.
Posté le : 28/12/2007 21:13:19

Déposé sur Fractale de koch

CChargy : Je parle de la dernière version d'openGL : "Opengl 3"
Mais il y aurait encore un support des fonctions à la con (ex: glVertex) pendant quelques temps je crois.
Posté le : 28/12/2007 19:49:01

Déposé sur Fractale de koch

"vu que c'est du matériel normalement et pas du logiciel"
=> Manque de bol, la carte graphique ne fait que du FLOAT, donc tous tes appels "glVertex2d" sont d'abord convertis en FLOAT par le CPU ! Donc tu auras des perfs horribles avec ton programme. Des que tu vas atteindre quelques dizaines de milliers de poly, ca va commencer à ramer.

De deux, les glVertex* c'est plus a utilisé. Tout facon, ca disparait dans la nouvelle version d'opengl. Ces fonctions sont catastrophiques pour les performances. Donc en conclusion, faire du pure hardware en opengl, c'est délicat...

Autrement remarque, un short = -+ 65000. Un int, c'est en milliards...
Posté le : 28/12/2007 17:40:06

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales