Historique des modifications - Message

Message #4294

Sujet: Problème d'affichage de textures : "clignotement"


Type Date Auteur Contenu
Création du message 19-06-2008 07:37:37 Sakamakak

wizad Ecris:

[Dsl pour les modos]
Le Code Bordel!!!
Et un peu plus qu'une ligne si tu veux qu'on t'aide

Tu as raison, j'aurais du fournir le code. Autant pour moi, mais ça n'est pas la peine d'être agressif. big_smile

Bref en farfouillant et en faisant varier mes Materials, j'ai résolu mon problème.
Le problème reste encore totalement obscur pour moi, mais j'en explique ma compréhension :

//creation d'un AnimatedMeshSceneNode a partir d'un mesh (non animé) créé sous blender
IAnimatedMeshSceneNode *braunchNode = this->sceneManager->addAnimatedMeshSceneNode(this->braunch3DModel,parent,-1,
                                                                                braunchNodePosition,
                                                                                core::vector3df(0.,0.,0.),
                                                                                core::vector3df(1.,1.,1.),false);

//chargement de la texture initiale
ITexture* braunchTexture = this->videoManager->getTexture(resources::braunchTexture);
if(!braunchTexture)
{
	new Exception("Failed to load the \\"braunch texture\\". Please verify the path");
}
braunchNode->setMaterialTexture(0,this->braunchTextureModel);
braunchNode->setMaterialType(EMT_SOLID);
...

Premièrement il semblerait que si on créé un MeshSceneNode au lieu d'un IAnimatedMeshSceneNode on ne puisse pas changer de texture dynamiquement (j'ai dit "IL SEMBLERAIT", mais si ca peut se confirmer, c'est bon a savoir)

Je charge mes textures qui viennent se "plaquer" à l'exécution de la sorte (rien de bien sorcier) :
...

//chargement de la texture de remplacement
irr::video::ITexture* braunchTexture = this->videoManager->getTexture("resources/TexturesDatas/braunchTexture.jpg");
if(!braunchTexture)
{
	new Exception("Failed to load the \\"Braunch texture\\". Please verify the path");
}
...

A l'exécution, je switche d'une texture à l'autre en fonction de divers évènements. Pour changer de texture voici ce que je fais :
...
braunchNode->setMaterialTexture(0, this->braunchTexture);
		this->nodes[fatherNodeId]->braunchRightRepresentation->setMaterialTexture(0, this->braunchTexture);
...

Deuxièmement j'utilisais un Material de type EMT_TRANSPARENT_ALPHA_CHANNEL et ca ne fonctionné pas. Maintenant j'utilise un Material EMT_SOLID et tout va bien. Mais c'est quand même super contraignant.

Et enfin (le plus agaçant je pense), cette combinaison ne permet de faire du changement de texture à l'exécution uniquement avec le driver OPENGL et pas avec DIRECT3D9.
Je me pose la question de savoir si tout ca ne vient pas de mon mesh en fait. Je reste sans réponse.

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