Pages: 1
Bonjour,
en tant que néophyte, je vais certainement poser une question évidente, mais je n'arrive pas à charger les textures d'un modèle .3ds.de véhicule. Et je ne comprends pas clairement la façon dont le chargement est effectué.
Tout en détails Le modèle 3DS se trouve sous la forme des répertoires suivants (Linux) :
vehicule/monmodele/vehicule.3ds vehicule/mestextures/echappement.png vehicule/mestextures/roues.png vehicule/mestextures/carrosserie.png vehicule/mestextures/plaque.png ......
De sorte que j'ai donc plusieurs fichiers de texture (fichiers PNG au format 8 bits) pour différents éléments (une douzaine) de mon véhicule lequel est représenté par un seul fichier 3DS.
J'ai réutilisé le code de l'exemple 01.HelloWorld fourni avec Irrlicht.
Je pensais naivement qu'il fallait simplement, à l'instar d'OpenSceneGraph, donner le nom du fichier 3DS, pour que le modele mesh et les textures associés soient affichées automatiquement. Mais cela n'a pas l'air d'être le cas : j'obtiens ainsi mon véhicule, mais tout en blanc, sur fond violet !! Il semble qu'il faille utiliser
node->setMaterialTexture()
Mais j'ai l'impression que cela ne fonctionne que s'il n'y a qu'UN SEUL fichier de texture associé au mesh, non ?!
Je pensais que le poste
http://www.developpez.net/forums/d68078 … -textures/
répondait à ce problème. Mais il semble, après les tests que j'ai fait, que celui-ci parle d'avantage de textures multicouches sur un mesh.
D'autant plus que la valeur maximale de
VAL
, fixée dans les fichiers headers, dans
node->setMaterialTexture(VAL, driver->getTexture("lvl/cube1_e2.bmp"));
est de 4 ! Donc je ne vois pas comment je pourrais mettre 12 fichiers !
Je suis donc allé sur d'autres forums qui semblent indiquer qu'il faille utiliser les paramètres node->setMaterielFlag, pour adapter la lumière, mais ce n'est pas clair du tout. Et cela ne dit pas si je dois ou non spécifier le nom des différents fichiers de texture!
Si quelqu'un à une réponse lumineuse, je suis preneur.
Merci.
Dernière modification par knightking (09-06-2009 21:15:42)
Hors ligne
La solution est simple, le fichier 3DS contient le nom des fichiers de textures, Or après analyse de ce fichier à l'aide de Khexedit, les fichiers ne possèdent pas, dans leur chemin relatif au fichier 3DS, le répertoire
vehicule/mestextures/
Ce qui implique que pour charger les textures, ces fichiers doivent directement se trouver dans le répertoire du fichier 3DS à savoir :
vehicule/monmodele/vehicule.3ds vehicule/monmodele/echappement.png vehicule/monmodele/roues.png vehicule/monmodele/carrosserie.png vehicule/monmodele/plaque.png
Dernière modification par knightking (10-06-2009 16:45:02)
Hors ligne
Cool, tu fais les réponses à tes propres questions
Hors ligne
Pages: 1