voila jai un probleme , la texture d'un rectangle (donc une image 2d) est mal affiché sous directx, en effet sous opengl il n'y a aucun pb mais sous directx l'image reprend un morceaux du bas de celle ci pour le repeter en haut.
voici l'image tel quel est :
voici la capture sous opengl :
voici la cpature sous directx :
et voici mon code:
le fait de changer les valeur de la fonction setcorners ne change rien il y a toujour ce trait embetant. et je precise que la resolution pour opengl est de 1024*768 alors que celle de direct est de 800*600 et que les dimensions de l'image sont de 1024*215
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 // Create background material MaterialPtr material = MaterialManager::getSingleton().create("fond2", "General"); material->getTechnique(0)->getPass(0)->createTextureUnitState("interface2.png"); //insere dans le material la texture material->getTechnique(0)->getPass(0)->setSceneBlending(SBT_TRANSPARENT_ALPHA); //ajouter la transparence par la couleur alpha material->getTechnique(0)->getPass(0)->setDepthCheckEnabled(false); material->getTechnique(0)->getPass(0)->setDepthWriteEnabled(false); material->getTechnique(0)->getPass(0)->setLightingEnabled(false); // Create background rectangle covering the whole screen Rectangle2D* rect = new Rectangle2D(true); rect->setCorners(-1, -0.45, 1, -1); rect->setMaterial("fond2"); // Render the background before everything else rect->setRenderQueueGroup(RENDER_QUEUE_OVERLAY-10); // Hacky, but we need to set the bounding box to something big // NOTE: If you are using Eihort, please see the note below on setting the bounding box rect->setBoundingBox(AxisAlignedBox(-100000.0*Vector3::UNIT_SCALE, 100000.0*Vector3::UNIT_SCALE)); //rect->setBoundingBox(AxisAlignedBox(800,117,0,1024,150,0)); // Attach background to the scene SceneNode* node = mSceneMgr->getRootSceneNode()->createChildSceneNode("fond2"); node->attachObject(rect);
Partager