moteur [3D] - Programmation
Marsh Posté le 02-01-2002 à 12:44:51
ReplyMarsh Posté le 02-01-2002 à 16:26:59
non ca va, ca tiens la route ton plan
Commence par charger des objets, les afficher . une fois que ca tourne mets des lights . A partir de la t'as une bonne petite base, a toi de voir jusqu'ou tu veux pousser ton projet ensuite....
[edtdd]--Message édité par chrisbk--[/edtdd]
Marsh Posté le 02-01-2002 à 18:05:03
si je ne me trompe pas, il est + simple de charger les objets lightwave, parce que pour les objets 3Ds il faut écrire un plugin d'exportation pour 3DS (le format de fichier n'est pas documenté).
Mais commence par faire un cube ou une pyramide à la main, et quand ça tournera tu pourras essayer d'utiliser des objets lightwave ou 3ds.
Marsh Posté le 02-01-2002 à 18:09:46
Pas documenté le format 3DS? Et sur http://www.wotsit.org/search.asp?s=3d
Marsh Posté le 02-01-2002 à 18:11:38
oui mais c pas des trucs officiel il me semble...
Marsh Posté le 02-01-2002 à 18:23:49
Tu fait tes études où toa?
Moa je cherche des info sur les partitions des mondes 3D pour optimiser les temps de calcul en ne faisant apparaitre que les objets que le perso voit. Si qq'1 a des infos ou des @?
Marsh Posté le 02-01-2002 à 18:41:49
recherche google =>
Quelques un des mots que tu peux chercher:
bsp, portal, octree, occlusion culling,
frustum culling, PVS
Sinon cote site web:
www.gamasutra.com
www.gamedev.net
www.flipcode.com
Bonne lecture..
LEGREG
Marsh Posté le 02-01-2002 à 19:56:14
merci pour toute ces reponse, je tiens à preciser pour wave que si je poste un message comme cela c'est que je sais deja faire tourner des cube, j'ai d'ailleur fait quelques petit systemes de particules assez simpliste.
au niveau des fichier à charger, est-ce que lightwave c'est gratos ou pas (je crois pas), en fait le mieux ca serait de creer un format assez simpliste mais la j'ai pas finit si il faut que je cree un logiciel qui permette de faire des objets 3d
Marsh Posté le 02-01-2002 à 21:06:08
euh pour l'affichage, c quoi le mieux, tableau de vertex ou liste d'affichage (j'utilise opengl), sachant que si les objet se deforme, les listes d'affichage, ca risque d'en faire un nombre un peu immense???
Marsh Posté le 02-01-2002 à 23:19:31
des formats de fichiers gratuits
tous le sont plus ou moins
(tant que tu n'utilises pas le logiciel
derriere qui est payant).
Exemple: format .x de directX,
format md2 ou md3 de quake etc..
Pour commencer pas la peine d'inventer
ton propre format de fichiers, choisis
un logiciel gratuit ou recupere
des fichiers sur le net ou dans les jeux
pour tes tests
(tant que tu ne commercialises rien
personne ne viendra t'embeter parce que
tu utilises le modele machin de tel jeu)
pour les donnees, en opengl
les display list c'etait une bonne
idee mais je ne crois pas que beaucoup
d'implantations (drivers) d'opengl en tirent
beaucoup partie surtout que comme
tu le precises les geometries
sont de plus en plus dynamiques (lod,
skinning, culling).
Les codes du genre
glbegin(triangle), glend(triangle)
c'est bien pour les tutoriaux
mais c'est impensable pour un moteur
3D => passe aux vertex arrays (opengl)
ou vertex buffers (directx) et index
buffers egalement.
A+
LEGREG
Marsh Posté le 02-01-2002 à 23:41:07
legreg a écrit a écrit : Les codes du genre glbegin(triangle), glend(triangle) c'est bien pour les tutoriaux mais c'est impensable pour un moteur 3D |
juste histoire de contredire quake2 affiche le monde avec un glBegin(GL_POLYGON); for(...) ... glEnd();
donc ça suffit bien pour faire des trucs qui restent très très jolis.
Marsh Posté le 03-01-2002 à 00:08:53
youdontcare a écrit a écrit : juste histoire de contredire quake2 affiche le monde avec un glBegin(GL_POLYGON); for(...) ... glEnd(); donc ça suffit bien pour faire des trucs qui restent très très jolis. |
peut-etre que c'etait la seule solution a l'epoque
(quake 2 est base sur des drivers minigl sans
extensions a une periode ou l'on etait
plutot limite en fillrate qu'en cout de polygones
rappelle moi ca fait combien de temps
qu'il est sorti quake 2? 1997?
c'etait quoi les cartes a la mode? voodoo,
powervr, matrox mystique et rendu software)
en tout cas c'est impossible sous direct3D
a moins de definir soi-meme les fonctions.
De meme plus personne ne conseille d'utiliser
l'algo du peintre (a part pour la transparence)
ou ne s'extasie plus pour un hardware capable
d'afficher 32 sprites de 16 pixels en overlay.
A+
LEGREG
[edtdd]--Message édité par legreg--[/edtdd]
Marsh Posté le 03-01-2002 à 01:16:22
pour etre plus precis sur ce point
je suis peut-etre un peu categorique sur
ce point, meme si pour un debutant un moteur
du niveau de quake 2 est encore un
doux reve
(pour moi aussi je vous rassure)
il y a quelques trucs a savoir, les
materiels actuels sont tres tres rapides
et traitent des millions de polygones
par seconde mais la rapidite ne se maitrise pas
comme ca, notamment pour ce qui est du cout
de processing des polygones. or un appel
de type glbegin, glcolor, gltexcoord
glvertex(3 fois), glend et ceci pour chaque
triangle de la scene est quasiment impossible a optimiser.
deja il faut eviter d'utiliser des triangles
mais au maximum faire des batchs de primitives
que ce soit des triangles strips, des listes indexees,
ou des surfaces d'ordre superieur.
grouper les polygones par type de surface
et envoyer les vertices en tas a la carte
pour qu'elle n'ait pas a attendre trop
longtemps entre deux polygones. (et pendant
qu'elle traite les polygones on peut preparer
la fournee suivante).
evidemment tu es encore loin de ce genre d'optimisation
(ou les gains ne se verront pas trop parce que ton moteur
affichera des choses tres simples)
mais comme traiter des batchs de polygones
n'est pas plus complique que traiter les triangles
un a un (au moins sous Direct3d, opengl je connais moins bien)
plutot prendre les bonnes habitudes .
A+
LEGREG
Marsh Posté le 03-01-2002 à 02:22:48
legreg, y'a un endroit ou on peut voir ce que t'as deja fait en d3d/ogl ? (simple curiosite )
Marsh Posté le 03-01-2002 à 10:07:19
ah oui une autre petite question, bientot je vais cree un autre topic car la.. bon enfin, pour une animation de model, qlq un peut m'expliquer comment ca fonctionne, j'ai quelques petites idées mais ca me semble un peu zarb,
- soit on cree toute les etapes dans le modeleur et on affiche un etape apres l'autre, cette methode à plein d'inconvenient car on se retrouve avec une taille de model gigantesque et une animation pas forcement tres fluide
- soit on definit des etapes dans l'animation et on calcul à la volée la position de chaque vertex (bon la c po trop mal mais ca fait des tonnes de calcul mais je ne sais aps si c'est un probleme, mais en tout cas à chaque image on a une position differente et l'animation reste fluide si la machine suit)
- soit on definit un squelette avec pas mal de position differente et on raccorde les polygones à l'articulation du squellette, cela permet d'avoir un grand nombre d'animation possible, de pouvoir gerer comme il faut la physique en mettant des boite de collision pour chaque membre mais à mettre en place, je le sens pas trop
est-ce que je fait fausse route ou pas? pour moi c'est quand meme un peu essentiel comme question, il me semble que dans quake ca serait plutot la premiere option qui serait choisit mais ca demande un travail de modelisation assez complexe, ya quelques chose comme 300 mouvements pour chaque perso
Marsh Posté le 03-01-2002 à 10:48:15
legreg a écrit a écrit : chribk> je t'ai repondu en private LEGREG |
Et pkoi pas sur le topic ?
Moi aussi ca m'interesse
Marsh Posté le 03-01-2002 à 10:56:54
parce que pour juger de la credibilite d'une personne
sur un forum de programmation vous n'allez
pas lui demander de montrer patte blanche
et d'annoncer les projets commercialises
comme pour un entretien d'embauche,
sinon on vire tous les hobbyistes du forum
si tu veux voir des dessins j'avais contribue au topic suivant:
http://forum.hardware.fr/forum2.php3?post=681&cat=12
A+
LEGREG
Marsh Posté le 03-01-2002 à 11:24:35
legreg a écrit a écrit : parce que pour juger de la credibilite d'une personne sur un forum de programmation vous n'allez pas lui demander de montrer patte blanche et d'annoncer les projets commercialises comme pour un entretien d'embauche, sinon on vire tous les hobbyistes du forum si tu veux voir des dessins j'avais contribue au topic suivant: http://forum.hardware.fr/forum2.php3?post=681&cat=12 A+ LEGREG |
g pas saisit. La prog 3D, tu fais ça pour ton boulot ou pour le fun (quoi qu'un boulot peut être fun, mais bon, on va pas s'embrouiller l'esprit avec ça, tu m'as bien compris ) ?
Marsh Posté le 03-01-2002 à 11:28:04
pour le fun
comme vous, quoi!
c'est pas clair dans mes posts?
LEGREG
Marsh Posté le 03-01-2002 à 11:32:32
si si... enfin, disons que g pas vraiement cherché à savoir avant.
Mais ça serai pas mal un topic d'échange de programmes réalisés en 3D...
T'aurais qqch contre ça toi LeGreg !?
Marsh Posté le 03-01-2002 à 11:34:56
Enfin, moi j'dis ça, mais g encore rien fait ! g pas l'temps
Depuis l'temps, g pu y passer que qqs heures... de quoi faire un cube qui tourne avec une jolie texture... pas la peine d'envoyer ça !
Marsh Posté le 03-01-2002 à 12:00:00
J'ai un moteur 3D (un musee) en openGL.
Tested and approuved by chrisbk
Marsh Posté le 03-01-2002 à 12:09:20
apparemment
Faut dire que c'etait du codage a la sauvage
Marsh Posté le 03-01-2002 à 12:21:43
Actuellement c'est ca :
On peut resumer en plusieurs grand points :
Bien :
pas bien
pis vouala a peu pres....
Marsh Posté le 03-01-2002 à 12:22:34
Enfin, manque de poly....
bref, ce shot montre aussi qu'il faudrait un systeme de niveau de detail
Marsh Posté le 03-01-2002 à 12:27:57
ha, ouais, mais ça va qd même... ça à plutot de la gueule qd même !
Malrgé les qqs défauts, c pas moi avec mon cube tournant qui vais venir te critiquer !
ça met un terrible coup à la motivation qd on voit le boulot qu'y a pr être "bon"... surtout sachant que, même si t bon par rapport à moi en prog3D, t mauvais par rapport à qqn d'autre, qui est lui même mauvais par rapport à un autre, etc, etc...
dessepérant !
Mais bravo qd même, ça en jette ton truc... reste a voir avec les animations !
Marsh Posté le 03-01-2002 à 12:31:27
Le gros pb avec chris c'est que quand il t'explique quelque chose tu captes rien
Trop doué ce mec (enfin c'est moi aussi qui capte rien donc...)
Marsh Posté le 03-01-2002 à 12:35:56
tu me vexe gb
moi qui pensait etre un bon prof ...
El gringo, je suis pas specialement si doué que ca, enfin comme tu le dis, c surtout une question de tps . ca fait deux ans que je me bat avec la 3D, alors a la fin ca commence a entre un peu....mais bon, a coté d'autre je fais rire.
Le tout c'est de se faire plaisir, et a te dire vrai, je crois que le coup ou j'ai ete le plus content de moi c quand mon premier moteur 3D a tourner pour la premiere fois, alors que bon, c'etait pas le fin du fin .....
Marsh Posté le 03-01-2002 à 12:38:33
Pour tout te dire y a pas mal de fois ou je t'ai dit "ok" alors que j'avais rien capte (apres 3 pages d'explication je vais passer pour un cretin )
Marsh Posté le 03-01-2002 à 12:41:52
nan mais faut dire que j'suis pas doue non plus.
Je savais pas ce qu'etait les vertex array, alors que c'est dans les premieres choses a savoir
Mais si je t'ai dit que c'etait "ok" c'etait pour pas te gonfler, tu dois etre un bon prof mais je suis un mauvais eleve, pour l'instant en tout cas...(et sans pc ca va pas s'arranger )
Marsh Posté le 03-01-2002 à 12:44:07
Les vertex array dans les premiers trucs a savoir ? je sais po trop, enfin chacun fait comme il le sent
pis si j'explique mal, j'explique mal hein ? ne me cherche pas des excuses
Marsh Posté le 03-01-2002 à 12:55:04
Ben quand je dis dans les premiers trucs c'est bien sur des que t'as capte l'histoire des points, polygones, etc...
Enfin dans mon bouquin c'est assez au debut, avant meme de parler des projections de visu, modelisations, etc...
Marsh Posté le 03-01-2002 à 13:12:14
ouhhhhhiiiiiiiinnnnnnnnn ya personne qui veut me repondre sur le probleme de l'animation, au lieu de ca il papotte sur mon topic, par contre le truc du terrain de chris c sympa, mais ya pas comme un probleme de polygone qlq part, je sais que ca doit etre en rapport avec le manque de temps mais il me semble que tout els poly sont de la meme taille et que au final ca bouffe des ressource enorme alors que si ceux eloigner etait plus gros , tu pourrait plus detaillé le devant du terrain, enfin tout depend comment tu le genere le terrain, si c'est à partir de poly style un fichier charger avec 3ds ou si c de l'aleatoire, mais si c de l'aleatoire tu doit faire ca avec des courbe je pense donc il suffit d'espacer les points de calcul avec la distance par rapport à la camera.ouf j'ai mis un poitn vous deviez plus avoir d'air.
bon enfin le terrain ca calme quand meme, sinon si chris tu as qlq cours à me filer je suis preneur. j'essaierai d'etre meilleur eleve que godbout
voila voila
Marsh Posté le 02-01-2002 à 10:49:11
salut à tous et bonne année,
voila faut que je fasse un moteur 3, mais je ne sais pas trop par ou commencer. En gros si j'ai bien compris un moteur 3D, ca sert à afficher des objets et à gérer les deplacement et transformation. Donc il faut de quoi charger des objets (genre importation de fichier 3ds ou autre format propriétaire).
faut aussi que ca puisse charger un fichier qui définit les mouvement et transformation de chaque objet (une scene en gros).
Ensuite il est question de régler les probleme de lumiere.
Puis les particules.
Et une fois que tout cela est fait, on peut améliorer en mettant des systèmes de collision, des otpimisation par arbre binaire et autre?
Suis-je dans le bon ou pas?
Combien de temps pour réaliser les premieres etapes (en gros) chargement de fichiers 3ds ou autre et affichage (sans eclairage spéciale).
Pour précision, j'utilise l'opengl sous windows(pour le systeme de fenetre, surement avec la lib SDL d'ailleur).
alors je me pend tout de suite ou pas?