#0 

29-01-2009 16:17:30

CYann
Petit nouveau
Date d'inscription: 26-01-2009
Messages: 2

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 :

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


#1 

29-01-2009 20:00:02

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

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


#2 

29-01-2009 20:10:07

CYann
Petit nouveau
Date d'inscription: 26-01-2009
Messages: 2

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é !!!!!

Code:

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 !

Dernière modification par CYann (31-01-2009 17:04:20)

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
Analysé par
880 membres
1424 sujets
11113 messages
Dernier membre inscrit: mandrifidy
29 invités en ligne
Aucun membre connecté
RSS Feed