#1 

29-01-2009 15:17:30

CYann
Membres
Date d'inscription:
Messages: 2
IP: 82.243.248.63
Courriel

Bonjour à tous smile

Je suis nouveau sur le forum et dans la programmation 3D avec Irrlicht. J'ai suivis le tutoriel du site du zéro, ainsi que certains tuto US du site officiel, et d'ailleurs j'arrive à obtenir de bon résultats pour l'instant wink . Je suis confronté à un problème actuellement, je vous explique :

J'ai un niveau fait avec wings3D exporté en 3DS, ce niveau contient une carte UV avec les textures etc... J'ai avec mon fichier 3ds 4 fichiers bitmap pour les textures. Mon problème c'est que je n'arrive pas à charger les 4 textures (en faite la console m'indique qu'elles sont chargées, mais une seul est utilisée sur le rendu).

Voici un extrait de mon code :

scene::IAnimatedMesh *level = smg->getMesh("lvl/niveauaitd_4t.3ds");
scene::IMeshSceneNode *node = smg->addMeshSceneNode(level->getMesh(0));
node->setMaterialFlag(video::EMF_LIGHTING, false);
node->setMaterialTexture(0, driver->getTexture("lvl/cube1_e2.bmp"));
node->setMaterialTexture(1, driver->getTexture("lvl/cube1_e9.bmp"));
node->setMaterialTexture(2, driver->getTexture("lvl/cube71_a.bmp"));
node->setMaterialTexture(3, driver->getTexture("lvl/cube74_a.bmp"));

J'espère que vous pourrez me dépanner ou m'indiquer un liens (car je n'est rien trouver de concis pour le moment).

Merci bien à vous


Hors ligne


#2 

29-01-2009 19:00:02

tmyke
Administrateurs
Avatar de tmyke
Date d'inscription:
Messages: 1025
IP: 86.218.168.224
Courriel

En fait, lorsque l'on essais d'empiler les textures comme cela sur un mesh, le soucis lors du rendu se situe dans la bonne configuration
des fonctions materials, comme 'SetMaterialType' par exemple. Et on ne vois sur le mesh que la texture du layer 0.
Donc, mon premier conseil serait de commencer par tester différentes configurations sur tes material au niveau des flag MATERIAL_TYPE, et
voir ce que cela donne, non ? wink


Force et sagesse...

Hors ligne


#3 

29-01-2009 19:10:07

CYann
Membres
Date d'inscription:
Messages: 2
IP: 82.243.248.63
Courriel

Et bien merci pour la réponse wink je vais tester plusieurs configurations et chercher dans la documentation surtout, car je ne vais pas essayer des truc au hasard comme ça xD.

Edit : J'ai examiné la piste que tu m'a donné, mais je n'arrive pas à l'utiliser. en effet setMaterialType permet à ce que j'ai compris de créer un nouveau type, mais mon niveau actuel, ne me permet pas encore de le faire, n'y a t'il pas un autre moyen ?

Sinon avec l'éditeur Irredit, la map s'affiche correctement avec toutes les textures.. j'ai essayé de faire une conversion en .irr mais impossible de la charger dans Irrlicht après, car j'obtient des messages d'erreurs..

Des idées ?


EDIT 2 : J'ai trouvé !!!!!

node->setMaterialTexture(3, driver->getTexture("lvl/cube1_e2.bmp"));
node->setMaterialTexture(3, driver->getTexture("lvl/cube1_e9.bmp"));
node->setMaterialTexture(3, driver->getTexture("lvl/cube71_a.bmp"));
node->setMaterialTexture(3, driver->getTexture("lvl/cube74_a.bmp"));

Il fallait passé 3 en paramètres car j'ai 4 textures (on démarre de 0), donc du coup ça marche wink ça servira peut être à certains !


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
172 invités en ligne
membre en ligne: -
RSS Feed