Bonjour,
J'ai vu ici : http://www.irrlicht.fr/forum/viewtopic.php?id=561
que le format .B3D pouvait être pas mal pour insérer des modeles (dans mon cas c'est une map), c'est pourquoi j'ai tester et convertit ma map en .B3D .
Mais lorsque je veux l'intégrée avec la ligne dans le post cité :
IAnimatedMeshSceneNode* node = sceneManager->addAnimatedMeshSceneNode(0,sceneManager->getMesh("mesh.b3d"));
Le compilateur me signal :
no matching function for call to `irr::scene::ISceneManager::addAnimatedMeshSceneNode(int, irr::scene::IAnimatedMesh*)'
Je me demandais donc comment l'intégrée.
Si quelqu'un pouvait trouver une solution ce serait gentil : ),
Merci d'avance
Capry
Hors ligne
ecrire un truc comme cela serait pas mieux des fois ?
irr::scene::IAnimatedMesh *mesh = Graphics::scenemanager->getMesh("frametest.b3d"); node = Graphics::scenemanager->addAnimatedMeshSceneNode(mesh);
Hors ligne
ah oui merci beaucoup ^^.
Mais en fait comme j'avais déjà fait un code avant, est-ce que l'on pourrait le mettre en :
irr::scene::ISceneNode* plutôt que en : irr::scene::IAnimatedMeshSceneNode* ?
Merci encore de ta rapidité
Hors ligne
Et bien si il ne s'agit pas d'une animation, alors il te faut écrire plutôt:
scene::ImeshSceneNode *node = scenemanager->addMeshSceneNode( mesh );
Hors ligne
Ah merci beaucoup !
Effectivement maintenant ça devrais marcher, mais je vois mon fichier apparaître sans couleurs (tout est blanc) et les collisions ne se font pas. Tu n'aurais pas une solution ? Sinon je peux toujours mettre mon code.
Encore merci ^^ .
Hors ligne
C'est tout noir car tu n'a certainement pas de lumière.
Soit tu en créé une, soit tu passe les material de ton mesh avec un flag EMF_LIGHTING à false.
Je te conseille sinon ce tuto, si tu débute, il devrait t'apporter beaucoups:
http://www.siteduzero.com/tutoriel-3-56 … licht.html
Hors ligne
En fait ça fait un moment que je l'avait lu. Mais ma map n'est pas toute noire mais toute blanche.
En fait pour les tutos, la map de test d'Irllicht, l'insertion et les collisions avec la map se font très bien. C'est au moment ou j'ai voulu utiliser une map en .irr que ça à commencer à bugger. En plus d'être très lourd comme chargement, c'est assez embêtant à exporter à partir de blender. Du coup je suis allez faire un tour ici et j'ai trouver les fichiers B3D, et en me renseignant, il se sont avérer être pratique avec Irrlicht. Donc voilà où j'en suis, la map apparait toute blanche et les collisions ne se font pas.
Pour les couleurs : Je modélise sur 3ds Max, et là les couleurs se voient, je ne pense pas que ce soit un problème d'exportation n'est-ce pas ?
Pour les collisions : j'ai repris le même code que pour la map officielle en BSP mais il ne marche pas. Il y a peut-être une façon différente ?
Merci d'avance.
Hors ligne
il faut utiliser un setMaterialTexture ou alors bien regarder que la texture soit bien exportée.
Hors ligne
Ah merci,
Pour les collisions j'ai résolu le problème. Mais pour les texture, j'imagine que je dois mettre node->setMaterialTexture() , mais qu'est-ce que je dois mettre comme arguments, parce que normalement les textures sont exportés dans le fichier b3D ?
Et ça ne vient pas non plus de la lumière car si je rajoute une lumière diffuse, mon perso à sa texture mais la map reste en noire (ou gris pour les endroits éclairés). Le B3D exporte bien les lumière et les textures normalement non ?
Dernière modification par capry (03-04-2009 19:15:18)
Hors ligne
Désolé du double post, mais lorsque je met setMaterialTexture et que je vais chercher ma textue PNG, la texture est appliqué à l'ensemble. Donc comment que dois-je mettre dans setMaterialTexture pour que les textures du B3D s'appliques ?
Hors ligne
Hum t'a essayé de mettre ton modèle .b3d dans le même dossier que les textures ?
Si ton modèle est texturé depuis le modeleur, t'es pas obligé de le texturer via le code....
Hors ligne
bah j'utilise 3DS Max, je fait admettons un cube rouge, et lorsque je l'insère dans ma map, il apparait noir, alors que mon perso (qui n'est pas en B3D) est bien texturé.
Hors ligne
ton cube est texturé avec une texture rouge ou tu utilises un material ?
un setMaterialFlag(EMF_LIGHTING,false) devrait faire l'affaire et mate dans la console si ta texture est bien loadée aussi .
Hors ligne
Bah avec 3DS MAX j'ai juste à cliqué sur la petite icône de couleur rouge XD (c'est peut-être ce que vous appeler material ? Car il n'y a pas de fichier contenant une image rouge...).
Dans la console il y a juste écrit :
Loaded mesh: maps/test/test.b3d
C'est tout ce qui concerne la map en tout cas.
De plus si je met le EMF_LIGHTING , ma map apparaît alors entièrement blanche.
Juste au cas où : comment vérifier que le fichier .B3D contient bien les textures ? Je n'ai pas trouvé de logiciel pouvant ouvrir ce type de fichier :S .
Hors ligne
Pfiou, je te conseille d'aller faire un tour sur les sites de tutoriaux de modélisation 3d sous max car tu ne sembles pas tout maitriser à se niveau là.
Tu utilises un material donc pas de texture donc il est normal que ton mesh apparaisse comme ça sous irrlicht!
Hors ligne
je ne m'occuperais pas de faire les modélisations de toute façon j'ai déjà quelqu'un d'assez doué pour ça (moi je suis nul XD, je m'occupe juste des conversions ^^).
Donc si j'ai bien compris :
- Si je mes une texture rouge au lieu d'un material, il s'affichera sous Irrlicht
- Et si je met un material, il ne s'affichera pas. N'y a t-il aucun moyen pour qu'il s'affiche à tout hasard (sinon tant pis je lui dirait de mettre des textures à chaque fois même pour juste une couleur)
Par contre j'avais entendu dire que le B3D exportait aussi les lumières, c'est vrai ? Parce qu'il y en à une et elle n'est pas importé :S.
Hors ligne
Irrlicht n'exploite pas toutes les possibilités des fichiers b3d, il ne prend en charge que le minimum : mesh, bones, textures, animations.
Dernière modification par johnplayer (04-04-2009 20:18:22)
Hors ligne
Ah, c'est dommage, donc le seul format dont Irrlicht exploite les lumière c'est le .irr/.irrmesh . Tant pis. Mais ça ne réponds pas à ma question : Est-il impossible que Irllicht affiche les material des fichiers .B3D ? Faut-il obligatoirement passer par un fichier texture, juste pour texturer en rouge par exemple ?
Hors ligne
Normalement, oui. Mais il y a un probleme que j'ai observer avec les *.3ds, lorsqu'une texture est affectée au mesh lors de l'exportation et s'il est sensible à la lumière dans irrlicht (EMF_LIGHTING = true), alors la texture apparaît blanchie à la manière d'un filigrane et si la lumière est trop forte le mesh apparaît alors tout blanc. Cela doit venir de la methode utilisée pour calculer l'influence des lumières sur les meshs.
Hors ligne
Tiens aujourd'hui je me suis pris plein de bille de Paint-Ball dans la tête, ça à dû m'ouvrir les yeux XD, car à ce moment là j'ai eu une idée : pourquoi ne pas exporter les modèles et les texture au format B3D et n'exporter QUE les lumière. Du coup je charge ma map en *.b3d, et je charge EN PLUS mon fichier *.irr, ne contenant que les lumière (en gros je fait juste un loadScene(lumières.irr) ). Et voilà ma map, avec ses textures (pas de material on fera avec ^^) et les bonnes lumières au bon endroit. Voilà aucun où quelqu'un voudrait reprendre l'idée ;D .
Merci beaucoup à tous !
Hors ligne