Historique des modifications - Message

Message #10471

Sujet: Agir sur l'opacité d'un triangle


Type Date Auteur Contenu
Dernière modification 27-04-2012 15:47:56 Metallizer
Je reviens sur ce topic 1 an après car j'ai trouvé une solution au problème initial et qui n'utilise aucun shader ! big_smile

Donc le truc c'est de pouvoir agir sur l'opacité d'un node qui utilise une texture avec canal alpha.
La solution m'a été donnée par un des admins qui s'occupent du moteur :

Le matériau à utiliser est EMT_ONETEXTURE_BLEND

Code c++ :

// Type de matériau pour faire des "mélanges
Material.MaterialType = video::EMT_ONETEXTURE_BLEND;

// On utilise cette fonction pour combiner l'alpha de la texture avec l'alpha des vertices
Material.MaterialTypeParam = video::pack_texureBlendFunc(
  video::EBF_SRC_ALPHA,
  video::EBF_ONE_MINUS_SRC_ALPHA,
  video::EMFN_MODULATE_1X,
  video::EAS_TEXTURE | video::EAS_VERTEX_COLOR
);
     
// On modifie l'alpha de chaque vertex
Vertices[0].Color.setAlpha(Opacity);
Vertices[1].Color.setAlpha(Opacity);
Vertices[2].Color.setAlpha(Opacity);
Vertices[3].Color.setAlpha(Opacity);
Création du message 27-04-2012 15:46:36 Metallizer
Je reviens sur ce topic 1 an après car j'ai trouvé une solution au problème initial et qui n'utilise aucun shader ! big_smile

Donc le truc c'est de pouvoir agir sur l'opacité d'un node qui utilise une texture avec canal alpha.
La solution m'a été donnée par un des admins qui s'occupent du moteur :

Le matériau à utiliser est EMT_ONETEXTURE_BLEND

Code c++ :

// Type de matériau pour faire des "mélanges
Material.MaterialType = video::EMT_ONETEXTURE_BLEND;

// On utilise cette fonction pour combiner l'alpha de la texture avec l'alpha des vertices
Material.MaterialTypeParam = video::pack_texureBlendFunc(
  video::EBF_SRC_ALPHA,
  video::EBF_ONE_MINUS_SRC_ALPHA,
  video::EMFN_MODULATE_1X,
  video::EAS_TEXTURE | video::EAS_VERTEX_COLOR
);
     
// On modifie l'alpha de chaque vertex
Vertices[0].Color.setAlpha(Opacity);
Vertices[1].Color.setAlpha(Opacity);
Vertices[2].Color.setAlpha(Opacity);
Vertices[3].Color.setAlpha(Opacity);

Retour

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