crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 20 févr. 2008 à 17:38
bon... comme vous l'avez sûrement deviné, j'ai mis en pause se moteur ^^
En effet, mon PC a reformater plein de fois, je suis passé sous windows, j'ai d'autres projets en prog... bref, pas le temps de continuer.
Je pense peut être le continuer plus tard en ajoutant une gestion du son, un moteur réseau, orienté objet, etc... parce que j'aimerais bien programmer un MMORPG (mais je me lance sur un 2D d'abord)
Donc, restez dans le coin, peut être qu'une nouvelle version sortira ;)
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 4 janv. 2007 à 22:14
Ca ne m'étonne même pas :p
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 4 janv. 2007 à 12:56
+1 pou glfw, ils la conseillent même à Epita ^^
"(je pense notamment à ton jpeglib.h, sauvagement recopié dans ImageLoaders.h par exemple, ce qui ne sert à rien en plus vu qu'on a besoin de la libjpeg pour compiler il me semble, non?)." -> j'aime bien le sauvagement lol ... même moi je me le suis dis quand je l'ai fait xD ( oui tu as bien lu, c'est de moi cette horreur )
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 2 janv. 2007 à 11:18
Je ne connaissais pas cette lib. Je vais faire un tour sur le net et si elle me plait, je l'utiliserais surement.
Merci encore pour ton aide (et pour celle des autres)...
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 1 janv. 2007 à 20:07
Ok, cool que ce soit celle-là, elle est portable ^^
Quand tu parles de te passer de GLUT, tu veux dire pour la gestion de fenêtres, l'input clavier/souris...etc ? Perso j'utiliser GLFW pour ça, et je ne trouve pas forcément utile de refaire ce qu'elle contient...
Surtout que gérer ça sur plein de plate-formes différentes n'est pas une mince affaire; sur Windows la doc est assez facilement trouvable, sous Linux faut apprendre à bidouiller avec la Xlib (pas très facile...), sous Mac c'est avec Cocoa en Objective-C, et encore faut-il avoir un Mac...
Alors qu'utiliser GLFW ou GLUT (préférence pr GLFW qd même, qui est libre, n'est pas abandonné, est moins buggué et donne plus de libertés à l'utilisateur (on voit la mainloop)) est facile et efficace...
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 1 janv. 2007 à 19:06
Je pense que dans ta liste, la méthode que j'utilise et la 3eme et pas la 1ere.
Je charge une image et j'affiche le caractèrequi est dans cette image.
GLUT est une bonne lib, mais j'aimerais plutôt créer mes librairies (c'est pas gagné). Pour la portabilité, j'essayerais de créer des classes qui puissent marcher sur différents systems (Linux, MacOS, Windows ...)
Pour le probleme des textures qui ne sont pas toutes créer pareil (les lettres ne commences pas à la même positions, les lettres sont plus ou moins grosses ...) je pense créer un script qui définira la grosseur des lettres, la position de départ...
Si tu as quelques idéées ou quelques astuces, tu pourrais peut être me les poster dans ma boite au lettre.
a+
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 1 janv. 2007 à 18:35
Pour tout ce qui est relatif à l'affichage de texte, il existe 3 méthodes :
-utiliser l'API Win32 (ce que tu fais il me semble) pour utiliser les fonts en TTF
-utiliser la librairie FreeType2 (Cf NeHe pour un tuto sur le sujet)
-utiliser une texture contenant tous les caractères à afficher, et les plaquer sur des quads
Ou sinon utiliser GLUT, qui utilise les bitmaps OpenGL (glRasterPos et tout ça...).
Le truc avec la tienne c'est qu'elle n'est pas portable, perso en général j'utilise une texture (j'ai posté une source sur le sujet il me semble ici)...
Après ça dépend, si tu veux que ton moteur 3D soit portable ou pas...
PS : une autre possibilité aussi c'est de réimplémenter sous les autres OS le système avec l'API Win32 (genre en utilisant la Xlib sous Linux...).
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 1 janv. 2007 à 18:21
Merci de tous vos conseils. J'essayerai de les utiliser dans ce "moteur 3D" et dans d'autres programmes.
Pour information, je suis en train de retravailler mon code pour y implanter de nombreuses fonctionnalités et pour réécrire les algorithmes que j'ai copier à partir du net. Si quelqu'un pouvait m'aider à en écrire, ça serait sympa...
C'est vrai que j'ai copier du code, mais il a quand même fallu le modifier pour qu'il marche. Par exemple, pour la fonction BuildFont(), j'ai du modifier un certain nombre de variables et de valeurs pour que les images s'affichent correctement. Pareil pour bien d'autres fonctions...
J'essayerais de modifier le nombre de polices maximum (il n'y en a que 2 ici) pour pouvoir en utiliser à l'infini...
Merci pour tous vos conseils...
maxoss
Messages postés3Date d'inscriptiondimanche 6 juin 2004StatutMembreDernière intervention31 décembre 2006 31 déc. 2006 à 06:08
Exemple... ça s'écrit comme ça... sans "a"... Merci, ça faisait mal.
Example, ç'est en anglais...
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 31 déc. 2006 à 01:06
Hmm, en fait ton code c'est surtout du récupérage de code fait par plein d'autres gens et un gros mix de tout ça...pas forcément "homogène"...
Oui je sais c'est pas très gentil, dsl, je sais que c'est un début et que quand on voit son modèle 3D s'afficher, sous l'euphorie du "waaah j'ai créé un moteur 3D !!"...
Disons que l'idée du "trouver un code sur le net qui fait", ok, mais pas pour le recopier DANS ton code direct; le principal c'est de comprendre l'algo derrière, de le faire à sa façon, et encore si on peut éviter de piquer un algo déjà fait et se le refaire soi-même, je trouve ça vachement plus intéressant et instructif que de repiquer du code, surtout s'il n'est pas super bien écrit...(je pense notamment à ton jpeglib.h, sauvagement recopié dans ImageLoaders.h par exemple, ce qui ne sert à rien en plus vu qu'on a besoin de la libjpeg pour compiler il me semble, non?).
Intéresse-toi aussi à d'autres moteurs 3D déjà écrits, comme OGRE (je l'utilise ces tempcs-ci, je recommande : très bien écrit et organisé), IrrLicht ou CrystalSpace, qui sont les 3 grosses références, ne serait-ce que pour voir comment organiser ton code (une classe représentant un objet 3D, une représentant une texture...etc).
-> important : l'Orienté Objet !!
Pour ce qui est des formats 3D, comme le dit Arnaud d'expérience (;)), c'est pas gagné : perso s'il y en a un que je sens bien, c'est le .mesh, créé par OGRE. Il existe des exportateurs pour plein de modeleurs 3D, du code le chargeant, tu peux en trouver en fouillant dans OGRE (IrrLicht aussi supporte ce format), et surtout il supporte les textures et l'animation par bones :)
Autre possibilité : te créer ton propre format et l'exportateur qui va avec pour le modeleur de ton choix (genre écrit en Python pour exporter depuis Blender) (Cf une de mes sources, avec un exportateur pour gmax, qui n'est maintenant malheureusement plus en téléchargement libre je crois...).
C'est long et difficile, mais c'est tellement bon :p
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 23 déc. 2006 à 15:48
Je trouve étrange pour un projet openGL que tu veuilles ouvrir du .x :)
Disons que les formats 3D c'est pas gagné ... encore et toujours dans Sniper ( j'en parle car tu le connais ! ) il a un loader md2, sinon tu peux aller voir sur google celui de David Henry.
Pour les images, tu l'as déjà ce code :s je dis juste que c'est mal organisé: oriente objet, encapsule, hérite, polymorphise, singletonne, et tout ira mieux ( pour ma dernière phrase, google est ton ami, ou pose des questions plus précises dans le forum :) )
Bye, bonne continuation.
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 22 déc. 2006 à 20:35
J'essaierais de modifier mon code pour qu'il ressemble à un vrai moteur 3d, mais c'est pas gagné...
Si quelqu'un pouvait m'aider à trouver du code permettant de charger des fichiers 3d (.x, .md2, etc...) et des images (.png, etc...)ou à modifier mon code (c'est pas dur...) il pourrai me l'envoyer juste juste pour que j'apprenne de nouveaux truc.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 22 déc. 2006 à 12:56
C'est bien ce que je dis les gens : j'avais programmé ça comme un porc. Maintenant j'évite même le générique dans le .h, je ré-inclus un .hpp histoire que déclaration et implémentation soient bien séparés ( même si on est bien d'accord que ça ne change strictement rien pour le compilo )
D'où ma critique à l'auteur de cette source : fais gaffe à ce que tu copies-colles du net, c'est pas parce que j'avais eu 10/10 à cette source que c'est forcément bien codé ;)
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 21 déc. 2006 à 22:36
le code dans le .h c'est pour faire du inline
faut pas non plus y coller des dizaines de lignes
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 21 déc. 2006 à 20:13
Jamais de code dans un .h sauf pour du généric.
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 21 déc. 2006 à 19:09
Hum
Disons que le terme de moteur 3D est absolument inapproprié.
Il s'agit davantage d'un set d'helpers pour oGL.
Le problème n'est pas du tout, m'est avis, que tu aurais dû attendre plus, mais plutôt que tu aurais dû mieux organiser ton code :
exemple dans glengine.h, GLSwapBuffers n'a rien à faire dans le même fichier que DrawModelOBJ...
Au fait, je trouve qu'il y a beaucoup de fonctions qui ressemblent étrangement à celles de Sniper, je pense surtout pour l'affichage de texte avec int center, je me trompe ou ça vient de moi ? ( absolument pas une critique hein, ça fait plaisir ^^ )
EDIT :
roh je rêve t'as fait un copier-coller ... très mauvaise idée, le code de Sniper fait partie des plus horribles que j'aie jamais tapé...
genre tu ne t'es pas demandé ce que faisait UINT MD2textures[50];
dans le gestionnaire de textures, si on peut appeller ça comme ça ?
et puis on ne met jamais de code dans un .h, juste des déclarations.
Je sais ces erreurs c'est moi qui les aies faites, mais c'est pas une raison pour ne pas les corriger.
Si tu veux un wrapper pour charger des images, utilise DeviL ( mais un pote m'a dit qu'il avait eu des problèmes avec), ou tgaloader de Funto, ou MP moi, je t'enverrai un _vrai_ code avec tout ce qu'il faut ( ou plutôt non, je le posterai certainement pendant les vacances, encore quelques trucs à finaliser )
++
XT95
Messages postés25Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention 5 août 2007 20 déc. 2006 à 18:14
Bah disons que ca aurait été mieux si tu l'avais poster dans un ptit moment avec quelques trucs de plus mais c'est un bon début quand meme ;) !
Continu!!
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 20 déc. 2006 à 17:11
Vous êtes un peu dur avec moi!
Bon d'accord! On peut pas appeller ça un moteur!
Mais je suis jeune et je n'avais que ça à faire!
Peut être qu'un jour ça sera un vrai moteur...
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 18 déc. 2006 à 21:30
Les gens sont durs.
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 18 déc. 2006 à 19:31
effectivement, un peu léger pour un "moteur", un terme malheureusement abusivement utilisé
en dehors de ça c'est pas mal, continues comme ça et ajoutes lui des fonctionnalités (physique, son, script, IA, ...) histoire d'en faire un vrai moteur ;-)
courage, c'est un bon début
XT95
Messages postés25Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention 5 août 2007 18 déc. 2006 à 18:35
Je sais pas si on peut encore appeler sa un moteur 3D :-°
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 17 déc. 2006 à 12:59
Il ne gère que l'affichage pour le moment.
Peut être qu'un jour il pourra jouer des sons ou des musiques.
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 17 déc. 2006 à 12:15
il gère le son ton... moteur 3D ou seulement l'affichage ?
crazy lapinou
Messages postés22Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention18 août 2008 17 déc. 2006 à 11:48
Je vais mettre une image mais ça sera l'example qui est fourni avec.
rambc
Messages postés224Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention29 mars 2009 17 déc. 2006 à 10:50
Une petite image serait TRES bien venue pour montrer ce qu'il est possible de faire avec ton moteur.
20 févr. 2008 à 17:38
En effet, mon PC a reformater plein de fois, je suis passé sous windows, j'ai d'autres projets en prog... bref, pas le temps de continuer.
Je pense peut être le continuer plus tard en ajoutant une gestion du son, un moteur réseau, orienté objet, etc... parce que j'aimerais bien programmer un MMORPG (mais je me lance sur un 2D d'abord)
Donc, restez dans le coin, peut être qu'une nouvelle version sortira ;)
4 janv. 2007 à 22:14
4 janv. 2007 à 12:56
"(je pense notamment à ton jpeglib.h, sauvagement recopié dans ImageLoaders.h par exemple, ce qui ne sert à rien en plus vu qu'on a besoin de la libjpeg pour compiler il me semble, non?)." -> j'aime bien le sauvagement lol ... même moi je me le suis dis quand je l'ai fait xD ( oui tu as bien lu, c'est de moi cette horreur )
2 janv. 2007 à 11:18
Merci encore pour ton aide (et pour celle des autres)...
1 janv. 2007 à 20:07
Quand tu parles de te passer de GLUT, tu veux dire pour la gestion de fenêtres, l'input clavier/souris...etc ? Perso j'utiliser GLFW pour ça, et je ne trouve pas forcément utile de refaire ce qu'elle contient...
Surtout que gérer ça sur plein de plate-formes différentes n'est pas une mince affaire; sur Windows la doc est assez facilement trouvable, sous Linux faut apprendre à bidouiller avec la Xlib (pas très facile...), sous Mac c'est avec Cocoa en Objective-C, et encore faut-il avoir un Mac...
Alors qu'utiliser GLFW ou GLUT (préférence pr GLFW qd même, qui est libre, n'est pas abandonné, est moins buggué et donne plus de libertés à l'utilisateur (on voit la mainloop)) est facile et efficace...
1 janv. 2007 à 19:06
Je charge une image et j'affiche le caractèrequi est dans cette image.
GLUT est une bonne lib, mais j'aimerais plutôt créer mes librairies (c'est pas gagné). Pour la portabilité, j'essayerais de créer des classes qui puissent marcher sur différents systems (Linux, MacOS, Windows ...)
Pour le probleme des textures qui ne sont pas toutes créer pareil (les lettres ne commences pas à la même positions, les lettres sont plus ou moins grosses ...) je pense créer un script qui définira la grosseur des lettres, la position de départ...
Si tu as quelques idéées ou quelques astuces, tu pourrais peut être me les poster dans ma boite au lettre.
a+
1 janv. 2007 à 18:35
-utiliser l'API Win32 (ce que tu fais il me semble) pour utiliser les fonts en TTF
-utiliser la librairie FreeType2 (Cf NeHe pour un tuto sur le sujet)
-utiliser une texture contenant tous les caractères à afficher, et les plaquer sur des quads
Ou sinon utiliser GLUT, qui utilise les bitmaps OpenGL (glRasterPos et tout ça...).
Le truc avec la tienne c'est qu'elle n'est pas portable, perso en général j'utilise une texture (j'ai posté une source sur le sujet il me semble ici)...
Après ça dépend, si tu veux que ton moteur 3D soit portable ou pas...
PS : une autre possibilité aussi c'est de réimplémenter sous les autres OS le système avec l'API Win32 (genre en utilisant la Xlib sous Linux...).
1 janv. 2007 à 18:21
Pour information, je suis en train de retravailler mon code pour y implanter de nombreuses fonctionnalités et pour réécrire les algorithmes que j'ai copier à partir du net. Si quelqu'un pouvait m'aider à en écrire, ça serait sympa...
C'est vrai que j'ai copier du code, mais il a quand même fallu le modifier pour qu'il marche. Par exemple, pour la fonction BuildFont(), j'ai du modifier un certain nombre de variables et de valeurs pour que les images s'affichent correctement. Pareil pour bien d'autres fonctions...
J'essayerais de modifier le nombre de polices maximum (il n'y en a que 2 ici) pour pouvoir en utiliser à l'infini...
Merci pour tous vos conseils...
31 déc. 2006 à 06:08
Example, ç'est en anglais...
31 déc. 2006 à 01:06
Oui je sais c'est pas très gentil, dsl, je sais que c'est un début et que quand on voit son modèle 3D s'afficher, sous l'euphorie du "waaah j'ai créé un moteur 3D !!"...
Disons que l'idée du "trouver un code sur le net qui fait", ok, mais pas pour le recopier DANS ton code direct; le principal c'est de comprendre l'algo derrière, de le faire à sa façon, et encore si on peut éviter de piquer un algo déjà fait et se le refaire soi-même, je trouve ça vachement plus intéressant et instructif que de repiquer du code, surtout s'il n'est pas super bien écrit...(je pense notamment à ton jpeglib.h, sauvagement recopié dans ImageLoaders.h par exemple, ce qui ne sert à rien en plus vu qu'on a besoin de la libjpeg pour compiler il me semble, non?).
Intéresse-toi aussi à d'autres moteurs 3D déjà écrits, comme OGRE (je l'utilise ces tempcs-ci, je recommande : très bien écrit et organisé), IrrLicht ou CrystalSpace, qui sont les 3 grosses références, ne serait-ce que pour voir comment organiser ton code (une classe représentant un objet 3D, une représentant une texture...etc).
-> important : l'Orienté Objet !!
Pour ce qui est des formats 3D, comme le dit Arnaud d'expérience (;)), c'est pas gagné : perso s'il y en a un que je sens bien, c'est le .mesh, créé par OGRE. Il existe des exportateurs pour plein de modeleurs 3D, du code le chargeant, tu peux en trouver en fouillant dans OGRE (IrrLicht aussi supporte ce format), et surtout il supporte les textures et l'animation par bones :)
Autre possibilité : te créer ton propre format et l'exportateur qui va avec pour le modeleur de ton choix (genre écrit en Python pour exporter depuis Blender) (Cf une de mes sources, avec un exportateur pour gmax, qui n'est maintenant malheureusement plus en téléchargement libre je crois...).
C'est long et difficile, mais c'est tellement bon :p
23 déc. 2006 à 15:48
Disons que les formats 3D c'est pas gagné ... encore et toujours dans Sniper ( j'en parle car tu le connais ! ) il a un loader md2, sinon tu peux aller voir sur google celui de David Henry.
Pour les images, tu l'as déjà ce code :s je dis juste que c'est mal organisé: oriente objet, encapsule, hérite, polymorphise, singletonne, et tout ira mieux ( pour ma dernière phrase, google est ton ami, ou pose des questions plus précises dans le forum :) )
Bye, bonne continuation.
22 déc. 2006 à 20:35
Si quelqu'un pouvait m'aider à trouver du code permettant de charger des fichiers 3d (.x, .md2, etc...) et des images (.png, etc...)ou à modifier mon code (c'est pas dur...) il pourrai me l'envoyer juste juste pour que j'apprenne de nouveaux truc.
22 déc. 2006 à 12:56
D'où ma critique à l'auteur de cette source : fais gaffe à ce que tu copies-colles du net, c'est pas parce que j'avais eu 10/10 à cette source que c'est forcément bien codé ;)
21 déc. 2006 à 22:36
faut pas non plus y coller des dizaines de lignes
21 déc. 2006 à 20:13
21 déc. 2006 à 19:09
Disons que le terme de moteur 3D est absolument inapproprié.
Il s'agit davantage d'un set d'helpers pour oGL.
Le problème n'est pas du tout, m'est avis, que tu aurais dû attendre plus, mais plutôt que tu aurais dû mieux organiser ton code :
exemple dans glengine.h, GLSwapBuffers n'a rien à faire dans le même fichier que DrawModelOBJ...
Au fait, je trouve qu'il y a beaucoup de fonctions qui ressemblent étrangement à celles de Sniper, je pense surtout pour l'affichage de texte avec int center, je me trompe ou ça vient de moi ? ( absolument pas une critique hein, ça fait plaisir ^^ )
EDIT :
roh je rêve t'as fait un copier-coller ... très mauvaise idée, le code de Sniper fait partie des plus horribles que j'aie jamais tapé...
genre tu ne t'es pas demandé ce que faisait UINT MD2textures[50];
dans le gestionnaire de textures, si on peut appeller ça comme ça ?
et puis on ne met jamais de code dans un .h, juste des déclarations.
Je sais ces erreurs c'est moi qui les aies faites, mais c'est pas une raison pour ne pas les corriger.
Si tu veux un wrapper pour charger des images, utilise DeviL ( mais un pote m'a dit qu'il avait eu des problèmes avec), ou tgaloader de Funto, ou MP moi, je t'enverrai un _vrai_ code avec tout ce qu'il faut ( ou plutôt non, je le posterai certainement pendant les vacances, encore quelques trucs à finaliser )
++
20 déc. 2006 à 18:14
Continu!!
20 déc. 2006 à 17:11
Bon d'accord! On peut pas appeller ça un moteur!
Mais je suis jeune et je n'avais que ça à faire!
Peut être qu'un jour ça sera un vrai moteur...
18 déc. 2006 à 21:30
18 déc. 2006 à 19:31
en dehors de ça c'est pas mal, continues comme ça et ajoutes lui des fonctionnalités (physique, son, script, IA, ...) histoire d'en faire un vrai moteur ;-)
courage, c'est un bon début
18 déc. 2006 à 18:35
17 déc. 2006 à 12:59
Peut être qu'un jour il pourra jouer des sons ou des musiques.
17 déc. 2006 à 12:15
17 déc. 2006 à 11:48
17 déc. 2006 à 10:50