#1 

27-02-2010 20:58:20

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

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


#2 

27-02-2010 21:02:22

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

tu a juste a utiliser une texture d'extension tga ou png ... la transparence s'applique tout seul ...

Hors ligne


#3 

27-02-2010 21:15:24

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

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


#4 

27-02-2010 23:15:45

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 77.195.185.153
Courriel

Il faut changer le type de materiel aussi:
exemple pour un nœud appelé cube, essaye celui là je crois:

Code c++ :

cube->setMaterialType( EMT_TRANSPARENT_ALPHA_CHANNEL);

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.

Hors ligne


#5 

28-02-2010 13:10:05

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

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


#6 

28-02-2010 18:31:20

Darktib
Membres
Date d'inscription:
Messages: 11
IP: 86.217.83.233
Courriel

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


#7 

28-02-2010 20:59:10

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

ok, mais comment est-ce que je fais sa ??? ^^


Hors ligne


#8 

28-02-2010 21:10:39

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 77.195.185.153
Courriel

Hummm... il y a une doc pour çà. bon....

Code c++ :

irr::video::SMaterial monMaterial; 
monMaterial.BackfaceCulling = false;

Hors ligne


#9 

01-03-2010 18:27:02

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

ok mais quand je rajoute sa..... sa fais rien ><, donc faut t'il rajouté quelque chose de plus ?


Hors ligne


#10 

03-03-2010 12:33:42

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

UP SVP


Hors ligne


#11 

03-03-2010 12:52:35

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 82.127.58.127
Courriel

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


#12 

03-03-2010 13:19:23

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.203.23.169
Courriel

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;
}


Hors ligne


#13 

04-03-2010 08:43:38

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 82.127.58.127
Courriel

Salut, tu crée un materiel "mat", mais tu ne tant sert pas, il faut que tu attribue ton materiel a ton noeud de scene sinon ça ne sert a rien.

Hors ligne


#14 

04-03-2010 15:23:20

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 90.25.90.169
Courriel

c bien sa, comment je fais pour l'attribuer lol


Hors ligne


#15 

04-03-2010 19:11:35

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 77.195.185.153
Courriel

Hors ligne


#16 

04-03-2010 19:25:43

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 90.25.90.169
Courriel

merci sa marche, encore merci ;p


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
139 invités en ligne
membre en ligne: -
RSS Feed