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! |
| 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! |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
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 |