Historique des modifications - Message

Message #905

Sujet: Texture : Translucidité & Alpha


Type Date Auteur Contenu
Dernière modification 27-12-2006 09:33:20 adiems
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 message 27-12-2006 09:27:13 adiems
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

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