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 !

178 commentaire(s) de luhtor sur des sources sur tout CodeS-SourceS

Le : 28/07/2008 11:24:08
Source : 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.


Le : 17/02/2008 22:39:41
Source : 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.


Le : 22/01/2008 18:59:42
Source : EXEMPLE D'AFFICHAGE MULTIPLATEFORME D'UN TRIANGLE (DIRECTX ET OPENGL)
"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


Le : 22/01/2008 18:28:52
Source : EXEMPLE D'AFFICHAGE MULTIPLATEFORME D'UN TRIANGLE (DIRECTX ET OPENGL)
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.


Le : 04/01/2008 14:28:25
Source : [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);


Le : 04/01/2008 14:26:44
Source : [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.


Le : 04/01/2008 11:07:55
Source : [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;
}


Le : 28/12/2007 21:13:19
Source : FRACTALE DE KOCH
Remplacé par rien. A jeter ces fonctions. Pour afficher, c'est:
glDrawElements
glDrawRangeElements

et rien d'autre.


Le : 28/12/2007 19:49:01
Source : 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.


Le : 28/12/2007 17:40:06
Source : 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...



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


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


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,125 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é.