Historique des modifications - Message

Message #905

Sujet: Texture : Translucidité & Alpha


TypeDateAuteurContenu
Dernière modification27-12-2006 09:33:20adiems
Salut, alors pour gérer correctement l'alpha d'une texture, il faut modifier un parametre du materiel de ton objet 3D auquel tu appliques ta texture...
En fait il faut modifier le parametre associé a EMT_TRANSPARENT_ALPHA_CHANNEL (qui a pour defaut 0.5, d'où les remarques précédentes: 0->49% alpha, pas géré, 50->100% alpha géré).
une bonne valeur est 0.1, pourquoi bonne? parce que la valeur 0.5 par defaut n'est pas la pour nous embetre mais pour éconnomiser du temps de calcul pour les rendu, en effet la doc irrlicht dit que cette opération est assez lourde et appliquée a de nombreux objets, bah ca bouffe des perfs tout simplement (c'est aussi pour ca qu'il y a un EMT_TRANSPARENT_ALPHA_CHANNEL_REF qui n'utilise pas d'alpha blending(bcp plus rapide) mais qui ne peut etre parametré: en gros ca fait comme un booleen: texture.pixel.alphaValue>127, c'est transparent, et <=127 c'est opaque).

voila donc pour régler ton problème, creé ou récupère le materiau de ton objet, puis modifie le selon ta convenance en matiere de précision d'alpha:

Material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
Material.MaterialTypeParam = 0.1;

[EDIT] en tout cas c'est comme ca dans la version c++ du framework, que j'utilise, mais mais comme le wrapper à pas l'air mal foutu du tout, ca doit fonctionner pareil!wink
Création du message27-12-2006 09:27:13adiems
Salut, alors pour gérer correctement l'alpha d'une texture, il faut modifier un parametre du materiel de ton objet 3D auquel tu appliques ta texture...
En fait il faut modifier le parametre associé a EMT_TRANSPARENT_ALPHA_CHANNEL (qui a pour defaut 0.5, d'où les remarques précédentes: 0->49% alpha, pas géré, 50->100% alpha géré).
une bonne valeur est 0.1, pourquoi bonne? parce que la valeur 0.5 par defaut n'est pas la pour nous embetre mais pour éconnomiser du temps de calcul pour les rendu, en effet la doc irrlicht dit que cette opération est assez lourde et appliquée a de nombreux objets, bah ca bouffe des perfs tout simplement (c'est aussi pour ca qu'il y a un EMT_TRANSPARENT_ALPHA_CHANNEL_REF qui n'utilise pas d'alpha blending(bcp plus rapide) mais qui ne peut etre parametré: en gros ca fait comme un booleen: texture.pixel.alphaValue>127, c'est transparent, et <=127 c'est opaque).

voila donc pour régler ton problème, creé ou récupère le materiau de ton objet, puis modifie le selon ta convenance en matiere de précision d'alpha:

Material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
Material.MaterialTypeParam = 0.1;

[EDIT] en tout cas c'est comme ca dans la version c++ du framework, que j'utilise, mais mais comme le wrapper à pas l'air mal foutu du tout, ca doit fonctionner pareil!wink

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
326 invités en ligne
membre en ligne: -
RSS Feed