comment utiliser les fichiers de 3D Studio avec Open GL ? - Programmation
Marsh Posté le 11-03-2001 à 20:56:03
pour trouver un utilitaire qui fait ça, vous allez en chier, car un objet 3d n'est pas vriement "sérialisable" en code openGL, à moins bien sûr que vous ne vouliez par exemple charger la texture une fois par surface...
De plus, les objets 3DSMAX ont plus de paramètres qu'openGL ne peut gérer.
Mais bon, tout n'est pas impossible. Le mieux pour commencer est de jeter un oeil aux fichiers ASE qu'exporte 3DS (file/export..)
C'est lisible à l'oeil nu et ça se parse sans grans problème (mais attention, ce n'est tout de même pas immédiat). Au passage, certaines données, comme celles sur les noeud de placement sont redondantes, donc il ne faut pas se faire chier à tout charger, mais seulement les matrices de transformation pas exemple. Enfin, je vous recommande de coder un serveur de texture où les textures sont chargées par leur nom ou suelement référencées s'il y a lieu. il faut utiliser les Texture Objects. C'est cool. Ah oui, il y a une lib qui s'appelle freeimage qui permet de charger moult types de fichiersgraphiques et qui est simple d'utilisation.
Marsh Posté le 11-03-2001 à 22:37:20
en fait je crois qu'il existe un utilitaire qui permet de tronsformer une fichier 3ds ou ase (je ne sais plus) en OpenGL. mais ca existe. Faut allez voir sur le site www.opengl.org
Marsh Posté le 11-03-2001 à 22:44:42
j'y suis allé plusieurs fois mais je le trouve pas ...
Marsh Posté le 12-03-2001 à 00:45:09
Il faut que tu utilises un (ou des) convertisseurs. Seul défaut, c'est qu'il y a souvent des problèmes de textures (la disparition des textures procedurales ou des erreurs de mapping par exemple).
Peut être que tu peux trouver au www.3dcafe.com.
Marsh Posté le 12-03-2001 à 07:33:56
ReplyMarsh Posté le 12-03-2001 à 10:59:56
sinon tu peux faire comme moi, tu exportes tes objets en fichiers ASE, et ensuite tu écris toi meme une fonction qui va charger le fichier ASE. (c'est pas compliqué). Au départ le fichier ASE fait peur, mais il n'est pas si compliqué que ce et il y a beaucoup de choses dont tu n'as pas besoin.
Il faut faire attention au parametre d'enregistrement si tu veux pouvoir recuperer aussi les normales et les coordonnees de mapping des textures.
structure du fichier ASE en gros :
liste des textures :
-> nombre de textures
-> nom du fichier
-> plein de parametres dont tu n'as pas besoin
on recommence à nom du fichier
liste des objets :
-> nombre de points
-> nombre de face
-> liste des points
-> liste des faces
-> liste des normales
-> liste des coordonnées de texture
-> liste des coordonnées de texture pour chaque face
-> et enfin numero de la texture
attention, si je ne me trompe pas, il ne peut y avoir qu'une seule texture par objet.
voila bonne chance
Marsh Posté le 12-03-2001 à 12:45:56
merci je vais regarder à quoi ca ressemble les fichiers .ase
Marsh Posté le 12-03-2001 à 13:40:01
Moi j'ai essayer de parser le fichier 3ds, mias faute de temps j'ai utilisé une bibliothèque toute prete.
regarde ca http://sourceforge.net/projects/lib3ds/
Et appuie toi sur sa demo, qui lit les fichiers 3ds et les affichent en opengl.
Le seul truc, c'est qu'il y a les m*normales par face, et non par vertex, il faut se les faire.
Si ca t'interresse je peut t'envoyer le programme qui le fait (rendu en "vertex array" ).
ecrit moi un e-mail.
Marsh Posté le 12-03-2001 à 19:18:25
Il me semble que 3d explorer le fait en tout cas il propose comme format d'enregistrement opengl cpp .
Vu que j'ai pas encore commencé la prog 3d j'ai pas vraiment pu tester mais ca a l'air de marcher.
Tu le trouveras dans la section utilitaires (je crois ou alors regardes en bas de la page quand tu vas dans 3d models) de http://www.3dcafe.com
@+
Black Wolf
Marsh Posté le 12-03-2001 à 19:51:23
Merci à tous, pour toutes les solutions que vous m'avez apportées.
Finalement j'ai adopté 3D explorer.
Marsh Posté le 11-03-2001 à 17:01:31
Bonjour je cherche un logiciel qui permettrait d'utiliser des fichiers 3D studio avec openGL...quelque chose qui transforme les .3ds en code C
---------------
http://www.chadenat.forez.com