Bonjour à tous,
J'ai une question. J'aimerais savoir si il existe une fonction dans irrlicht pour rendre un texture transparente, enfin quand je dis transparente, c'est de la transparence, mais en partie. Je m'explique :
J'ai un mur ou j'aimerai appliquer une texture grillage dessus, et rendre transparent se qui est entre les mailles de mon grillage, pour que mon mur devienne transparent mais que l'on voie alors que le grillage.
Je c pas si je me suis bien expliqué^^, mais je vous remercie d'avence pour votre réponse
Hors ligne
tu a juste a utiliser une texture d'extension tga ou png ... la transparence s'applique tout seul ...
Hors ligne
sa marche pas. Si c'est une image 2d sur l'écran, oui sa marche mais comme texture sur mon mur, sa marche pas, enfin si a moitié. Se qui devrait etre transparent est remplacé par du blanc, et moi se que je voudrait, sa serai pouvoir voir a travers le mur, se qui évite d'utilisé des vector pour faire un grillage, j'ai vu quelque jeu qui utilse cette technique, donc j'aimerai l'appliqué dans irrlicht
Hors ligne
Il faut changer le type de materiel aussi:
exemple pour un nœud appelé cube, essaye celui là je crois:
Mais il faut aussi utilisé une texture en png ou tga, mais il ne faut pas seulement laisser en blanc les partie que tu ne veut pas afficher, il faut carrément les supprimées.
Dernière modification par nabouill (28-02-2010 00:17:00)
Hors ligne
je te remerci car en rajoutant cette ligne, c'est bon, sa fonctionne, je voie a travers^^. Par contre j'ai comme meme une petite quesiton, car bien sur mon mur ne peux se voir que d'un coté, mais il n'y aurai pas une maniere pour que la texture puisse se voir devant et derière, si non, bah c'est pas grave, je ferai une éppaiseur très fine^^
Encore merci et bonne journée
Hors ligne
Pour que tu puisse voir la texture des 2 cotés, il faut que tu désactive le backface culling, dans le matériaux du mur.
(ie, cette technique empêche le rendu de tous les polygones qui tourne le dos à la caméra, c'est une technique d'optimisation)
Hors ligne
ok, mais comment est-ce que je fais sa ??? ^^
Hors ligne
Hummm... il y a une doc pour çà. bon....
Dernière modification par nabouill (28-02-2010 22:13:39)
Hors ligne
ok mais quand je rajoute sa..... sa fais rien ><, donc faut t'il rajouté quelque chose de plus ?
Hors ligne
Il faudrait savoir si ton mur est une simple surface plane ou un cube ou ...
Et aussi un petit bout de code, car ça me parait bizarre que rien ne marche chez toi
A+
Hors ligne
alors mon mur est juste une surface plane, et voiçi le code
#include <cstdlib> #include <iostream> #include <irr/irrlicht.h> using namespace std; using namespace irr; using namespace core; using namespace scene; using namespace video; using namespace io; using namespace gui; int main(void) { irr::IrrlichtDevice* device = irr::createDevice( irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(640,480), 32); irr::video::IVideoDriver* driver = device->getVideoDriver (); irr::scene::ISceneManager *sceneManager = device->getSceneManager (); irr::scene::IAnimatedMeshSceneNode* Nmodele = sceneManager->addAnimatedMeshSceneNode(sceneManager->getMesh("mur.3ds")); Nmodele->setMaterialFlag(EMF_LIGHTING, false); irr::video::ITexture *grillage = driver->getTexture("grillage.png"); // chargement image Nmodele->setMaterialTexture( 0, grillage); Nmodele->setMaterialType( EMT_TRANSPARENT_ALPHA_CHANNEL); irr::video::SMaterial mat; mat.BackfaceCulling = false; irr::scene::ICameraSceneNode *camera = sceneManager->addCameraSceneNodeFPS(0,100.0f,1.0f); while(device->run ()) { driver->beginScene(true, true, irr::video::SColor (0,120,120,120)); sceneManager->drawAll (); driver->endScene (); } device->drop (); return 0; }
Dernière modification par narugohan (03-03-2010 15:01:02)
Hors ligne
c bien sa, comment je fais pour l'attribuer lol
Hors ligne
jette dont un coup d'oeil par la: http://irrlicht-fr.org/viewtopic.php?pid=8050#p8050
Hors ligne
merci sa marche, encore merci ;p
Hors ligne