Télécharger le zip
Ca m'a l'air sympa. Mais d'apres la capture, c'est optimisable... 22fps :Dbravo tout de meme.
En fait, je faisais une compression en meme temps, en temps normal il fait du 86 FPS
60000 faces c qd meme enorme pour du temps reel (comparé aux perso de counter ou bien quake a environ 500faces).Au fait c pas 86 mais 33(86 c pour une version aptimisée par 10 sous 3dsmax et on voit pas vraiement la difference)
ben, le génie de l'artiste se mesurera à sa capacité à faire du beau en 500 triangles, voilà l'histoire ;-)
ya pas d'exe?
Les exe ne sont pas autoriser dans les zip, alors faut que tu compile toi meme le prog.NB: la map fourni dans le zip n'est pas celle de la photo pour des raisons de memoire.
si ta fait ca avec dev c++, je peu pas compiler car je peu pas l'avoir, moi je met l'exe dans le zip(et je loin d'etre le seul mais bon...) pour ceux qui n'ont pas vc++ par exc'est une histoire de confiance, et ce qui est strictement interdit c'est de filer un exe a la place du zip
scuz, aparament tu la fait sous vc++ mais manque les fichiers du projet, non?
Je viens d'ajouter l'exe, par contre g enlever les dll pour l'opengl car le fichier était trop volumineux.Sinon, le fichier projet est bien dans le zip, c le fichier Moteur3d.vcproj.
oui mais ta source est en .net(j'avai pas vu) et j'ai vc++ 6.0faut un truc particulier pour executer un .net(genre une VM) parce que ca plante quand je le lance ??
il te faut le run time de microsoft, hyper gros fichier, mirosoft.com
ouai ba je vais lacher l'affairesebos2013 ==> les attributs sont public par defaut dans une struct
et private par défaut ds une classe
Dsl, mais g oublie de relire mon code pour ASE.h, mais il marche tres bien, juste quelques modifs que je ferai plus tard.
voila toute la difference!
Juste un petit truc comme ca evite de dire que c un moteur 3D certains pourraient le croire et pourtant c'est encore très loin d'être un moteur 3D mais sinon c du bon taf
Tu as tout a fait raison, je suis conscient que ce n'est qu'1 debut et il y a du boulot, il faut gerer les textures, lumieres, collisions, etc..Mais g pas trop le temps ce mois ci.
ouai les textures normalement tu recupere les corrdonnées dans le .ase, pareil pour les normales des vertexs, non?(si c 3ds)en fait le plus dur c'est vraiment la gestion des colisions(detection et reponse), tu va t'amuser!
Les normales des vertex c deja fait, mais pour que ca soit utile il faut utiliser le modificateur smooth dans 3dsmax, sinon pour optimiser mon prog, peut etre serai-t-il mieux de ne calculer qu'1 normale par face et non 1 par sommet, ca reduirai le calcul des normales par 3, non?
j'ai jamais fait mais je suppose que les normal c'est pour l'eclairage puisque par exemple avec la normal d'un plan tu deduis son coefficient d'eclairage et de meme avec les vertexs, mais je crois que c'est mieux de faire un eclairage par vertex car avec les plan ca "facetise" ton model, et de toute facon ces calcul sont fait pendant le chargement et pas pendant le rendu.je suis pas sur de ce que je dit donc corrigez moi si je me trompe!
perso en OpenGL je fais qu'une normale par polygone (qd je code les vertexes "à la main")
moi c'est fini, je fait plus ca a la main! j'ai fait mon petit prog pour dessiner des map(trop pratique)
ben quand il faut faire un cube j'ai ma classe toute faite quoi, je l'ai écrite une fois pr toutes.qd aux maps de jeux, évidemment tu te crées un éditeur, pas fou :-P
le labyrinthe je l'ai fait a la main!
nah, je te parle d'un JEU lol, le labyrinthe c'est un mini-jeu, on est d'accord non? un serpent, aussi beau et évolués soit-il reste un mini-jeu. un jeu c'est une histoire (un scénario), etc...
En tout cas, c'est bien parti pour devenir un moteur3D qui soit digne de ce nom
Kirua ==> oui que c'est un mini jeu mais j'aurais quand meme prefere le faire avec un editeur plutot qu'a la main
Moi, je prefere les mega jeux, c un sorte de vrai jeu avec plein d'autres truc, il me semble.
sebos tu te moques de moi ou... :-D
Si vous voyez des moyens d'optimiser mon code, n'hesitez pas à me le dire!!!
au lieu de faire glVertex3f( 3 parametre ) fait glVertex3fv( tableau de 3 parametre) juste pour voir si ca ameliore beaucoup le framerate
Je viens juste de faire des modifs, ce qui est dit précedemment et affichage du framrate seulement.J'observe un gain d'environ 10 fps, c pas mal.
a ouai 10fps par rapport a 27 c'est pas mal!si ton objet ne bouge pas tu peu faire une display list compiléunsigned dl_obj; // la display liste// procedure que tu appel au debut du progvoid InitRendu(TypeObjets *objj){ dl_obj=glGenLists(1); glNewList(dl_obj,GL_COMPILE); if (objj != NULL) { Info obj = objj->infor; glBegin(GL_TRIANGLES); unsigned long j=0; for (unsigned long i=0;i<obj.mesh_numfaces;i++) { glNormal3fv(&obj.tab_meshvertexnormal[3*j]); j++; glVertex3fv(&obj.tab_sommets[3*obj.tab_polygones[3*i]]); glNormal3fv(&obj.tab_meshvertexnormal[3*j]); j++; glVertex3fv(&obj.tab_sommets[3*obj.tab_polygones[1+3*i]]); glNormal3fv(&obj.tab_meshvertexnormal[3*j]); j++; glVertex3fv(&obj.tab_sommets[3*obj.tab_polygones[2+3*i]]); } glEnd(); rendu(objj->suivant); } glEndList();}tu rajoute glDeleteLists(dl_obj, 1); a la fin du proga pres dans draw() tu fait:glCallList(dl_obj); pour afficher la listpar contre je me demande si c'est utile les vertexs arrays dans une display list?? (de toute facon la c'est fait)on verra de combien ca augmente le framerate
Je viens de faire les changements que tu viens de me conseigner.Par contre, il y a quelques petites erreurs que j'ai corrigé:1)InitRendu(FileLoader.Objets);2)la fonction InitRendu étant récurssive, il fallait donc mettre-dl_obj=glGenLists(1); glNewList(dl_obj,GL_COMPILE);-glEndList();en dehors de la fonction InitRenduSinon, c génial, j'ai pu multiplié le nb de faces par 7 en gardant un fps de 43.
Ca fait qd meme enorme, une scene de 450 000 faces environs, je le dit encore, la map dans le zip n'est pas celle de la capture (memoire oblige).
desolé j'avai trop pas capter que c'etait recursif!ta essayer avec et sans les vertex arrays dans la display list pour voir si ca change les perf?autre chose, d'assez important, le cull facing, un polygone a 2 faces(normal !) mais on en voit qu'une donc faut supprimer celle qui n'est pas vue(50% de rendu plus rapide garanti!)ta qu'a rajouter ca dans draw() glEnable(GL_CULL_FACE); glCullFace(GL_BACK); moi sur une scene avec ca je passe de 360 a 440fps donc c a prendre
450000 c carrement du jamais vu dans les jeux video!dans 3dm2k1, la map pour tester la geometrie faisait 1 million de triangle!!! (moi je faisais 22 fps avec une source de lumiere et ma gf3)
Dsl, mais ca n'a rien changé, sinon comment tu fait pour avoir 440fps car meme avec un seule cube dans la scene, il semble que mon fps bloque a 86.
ton v-sync doit etre activer(ton ecran doit etre en 85hz), il faut que tu le desactive dans les parametre opengl de ta carte graphiquemoi j'ai 2300fps quand j'affiche juste les fps!
Merci, ca marche.
en fait le cull facing te fera gagner en perf quand tu utilisera des textures vu que ca economise le fillrate
djl, je vois pas l'avantage de désactiver le V-sync, de toute façon ton écran affichera jamais les images générées entre, ça peut etre utile que pour l'amélioration des performance mais quand tu joues à un jeu, autant l'activer, ça évite de surcharger le processeur.
ben en fait ca depend des jeux, pour quake 3 par ex tu peu etre sur que si tu veut frager sec ta pas interet a avoir le v-sync d'activer car le moteur de q3 a la particularite d'avoir plusieur phase de jouabilite en fonction du framerate(genre a partire de 120-150 c'est autre chose) et tu peu pas le ressentir avec la synchro.d'ailleur Carmack veut justement corriger cette injustice pour doom3 en plafonnant le framerate a 60fps!
Je viens de faire quelques modifs.J'ai eu un probleme de System.StackOverFlowException, alors g été obligé de modifier toutes mes fonctions récursives en itératives afin de ne pas surcharger la pile d'exécution.Sinon, j'ai modifier la fct de chargement des objets, et le chargement semble bcp plus rapide.
ok djl, donc j'ai enfin une excuse tangible à ma nullitude à Quake 3 :-D
ouai, tout comme le ping est une excuse sur internet !sebos2013 ==> elle clack cette scene!et 25 fps pour 1,3M de polygones c'est pas mal
---------------------------Moteur3d.exe - Erreur d'application---------------------------L'application n'a pas réussi à s'initialiser correctement (0xc0000135). Cliquez sur OK pour arrêter l'application. ---------------------------OK ---------------------------est-ce que ce message veut dire que je dois installer le Run-Time .NET ?
helas oui ;)
zut... bon ben, je vais faire ça alors
voilà, je l'ai installé, ça fait une 20aine de Mo pour ceux qui veulent savoir, microsoft.comalors, je me suis balladé pdt 10 min autour de la théière et du noeud :-D mais tu pourrais pas m'envoyer la scène du screenshot via mail? nicolasboumal arobase hotmail points com, essaye de bien compresser si tu me l'envois parce que hotmail est méchant sur les tailles :-Ppr info, j'ai 57 FPS avec cette scène, GeForce3 Ti200
ok je vais essayer pou le screenshot.En ce qui concerne la scène, c un boulot que j'ai fait dans le cadre de mes études, tout le batiment en 3d (la photo ne represente qu'1 tres faible partie), la plus grosse scène monte a plus de 6millions de faces (45mn de rendu avec 3dsmax alors en tps reel, c pas la peine).
Par contre je pense t'envoyer plutot le fichier max que ASE, tu n'auras qu'a l'exporter. (l'ase prend presque 460Mo) alors que le max compreesé 670Ko, je pense que tu me comprendras.
ouai c'est sur qu'au format texte ca prend un peu plus de place!mais avec quoi on peut le convertir en .ase? parce que 3ds c'est pas donné
A par 3dsmax, je vois pas trop, tu l'auras facilement sur la mule ou edonkey.
La solution serait que j'importe directement du fichier max, mais la, la structure ne se deduit pas, a moins que vous ayez des docs.
Pour que je t'envoie le fichier de 760ko sur hotmail, il faudrait d'abors que tu fasses de la place, car il me dit que ton compte est plein.
ok merci sebos, j'utiliserai 3D Exploration pr extraire.
Voila, je viens de mettre a jour mon prog, ca devrait marcher avec 3D Exploration, en fait les ASE de 3dsmax commencent toujours par *3DSMAX_ASCIIEXPORTet je cherchais cette ligne pour savoir si s'était bien un ASE, g donc supprimé ce test.
ben de toute façon 3D Exploration fait la grève chez moi O_o Plus moyen de le lancer, même après réinstallation, comprends pas. Je verrai ça demain, merci pr les efforts, je suis curieux de voir cette salle ^^
alors, j'ai pu lancer le programme, mais ça m'a juste servi à me rendre compte que 3DE est incapable de générer des ASE, eh vi... enfin, tant pis ! merci qd même :-)
oui mais 3de gere les .asc (3d studio asc file) qui sont aussi des fichiers ascii donc doit y avoir moyen de faire un loader pour ce formatpour un .3ds de 900ko je passe a 5mo en .asc
Le problème, c que 3dsmax, n'exporte pas an ASC
3de converti les .3ds en .asc
d'accord, mais ds l'immédiat ça pose problème, un loader ASC ça s'improvise pas je suppose ^^
ba tu cacul vite fait la structure vu que c'est du texte donc en ce qui concerne le chargement des vertexs, si ca peut se faire vite fait!==> contenu d'un ascAmbient light color: Red=0.2 Green=0.2 Blue=0.2Named object: "antennae"Tri-mesh, Vertices: 1630 Faces: 2876Vertex listVertex 0: X:-10.3154 Y:-771.608 Z:167.434Vertex 1: X:-10.3154 Y:-791.221 Z:162.014Vertex 2: X:-10.3154 Y:-791.221 Z:157.198Vertex 3: X:-10.3154 Y:-734.72 Z:157.198Vertex 4: X:-10.3154 Y:-710.973 Z:165.104Vertex 5: X:-10.3154 Y:-678.628 Z:165.104Vertex 6: X:-10.3154 Y:-678.628 Z:179.307Vertex 7: X:-10.3154 Y:-710.973 Z:179.307Vertex 8: X:-10.3154 Y:-734.487 Z:168.662Vertex 9: X:-10.3154 Y:-752.325 Z:168.662...
ah c si "con" que ça? :-D mais c une perte monstre de place d'écrire Vertex à chaque fois O_o
c'est ce que j'ai dit plus haut"pour un .3ds de 900ko je passe a 5mo en .asc "a la maniere des .ase ...