Historique des modifications - Message

Message #9699

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


Type Date Auteur Contenu
Dernière modification 27-04-2012 15:50:56 Metallizer
Edit: Problème résolu, voir le message #7 pour la solution
  • -------------------------------------


Salut à tous.

Je cherche à modifier l'opacité de triangles que je dessine manuellement dans le video driver.

Code c++ :


texture = videoDriver->getTexture("maTexture.png");
material.setTexture(0, texture);
material.Lighting = false;
material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
material.DiffuseColor = video::SColor(100,255,255,255);

vertices[0] = video::S3DVertex(-100, 100, 0.1, 1, 1, 0, video::SColor(100,255,255,255), 0, 0);
vertices[1] = video::S3DVertex(100, 100, 0.1, 1, 0, 0, video::SColor(100,255,255,255), 1, 0);
vertices[2] = video::S3DVertex(-100, -100, 0.1, 0, 1, 1, video::SColor(100,255,255,255), 0, 1);
vertices[3] = video::S3DVertex(100, -100, 0.1, 0, 0, 1, video::SColor(100,255,255,255), 1, 1);

core::matrix4 mat;
u16 indices[] = {0,2,3, 2,1,3, 1,0,3, 2,0,1};
videoDriver->setMaterial(material);
videoDriver->setTransform(video::ETS_VIEW, mat);
videoDriver->drawIndexedTriangleList(vertices, 4, indices, 4);
videoDriver->setTransform(video::ETS_WORLD, mat);


Je pensais qu'il suffisait de modifier les paramètres de mon materiau et notamment DiffuseColor mais visiblement ça ne prend pas en compte la composante alpha.
J'ai aussi essayé de modifier la couleur de chaque vertex mais là aussi l'alpha est ignoré.

Quelqu'un aurait une idée ?
Création du message 02-02-2011 13:21:41 Metallizer
Edit: Problème résolu, voir le message #7 pour la solution
  • -------------------------------------


Salut à tous.

Je cherche à modifier l'opacité de triangles que je dessine manuellement dans le video driver.

Code c++ :


texture = videoDriver->getTexture("maTexture.png");
material.setTexture(0, texture);
material.Lighting = false;
material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
material.DiffuseColor = video::SColor(100,255,255,255);

vertices[0] = video::S3DVertex(-100, 100, 0.1, 1, 1, 0, video::SColor(100,255,255,255), 0, 0);
vertices[1] = video::S3DVertex(100, 100, 0.1, 1, 0, 0, video::SColor(100,255,255,255), 1, 0);
vertices[2] = video::S3DVertex(-100, -100, 0.1, 0, 1, 1, video::SColor(100,255,255,255), 0, 1);
vertices[3] = video::S3DVertex(100, -100, 0.1, 0, 0, 1, video::SColor(100,255,255,255), 1, 1);

core::matrix4 mat;
u16 indices[] = {0,2,3, 2,1,3, 1,0,3, 2,0,1};
videoDriver->setMaterial(material);
videoDriver->setTransform(video::ETS_VIEW, mat);
videoDriver->drawIndexedTriangleList(vertices, 4, indices, 4);
videoDriver->setTransform(video::ETS_WORLD, mat);


Je pensais qu'il suffisait de modifier les paramètres de mon materiau et notamment DiffuseColor mais visiblement ça ne prend pas en compte la composante alpha.
J'ai aussi essayé de modifier la couleur de chaque vertex mais là aussi l'alpha est ignoré.

Quelqu'un aurait une idée ?

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