Bien le bonjour,
Mon problème du jour concerne le renderToTexture.
Quand j'essaie d'afficher ma texture créée avec createRenderTargetTexture à l'écran, elle apparait la tête en bas.
Le principe du code : je dessine tux.png dans une texture et ensuite j'affiche cette texture. Et pour vérifier j'affiche directement tux.png à l'écran juste à côté.
et un affichage avec
mais t apparait la tête en bas, quelqu'un a une idée ?
Hors ligne
tu veut apliquer une texture sur un node ?
si ses sa tu fait sa
player = smgr->addAnimatedMeshSceneNode(smgr->getMesh("mesh/perso/faerie.md2"));
player->setRotation(irr::core::vector3df(0,0,0) );
player->setMaterialTexture(0, driver->getTexture("mesh/texture/faerie.bmp"));
player->setMaterialFlag(video::EMF_LIGHTING , false);
player->setMaterialFlag(video::EMF_FOG_ENABLE, false);
player->setPosition(vector3df(76,100,-61));
player->setScale(core::vector3df(1.5,1.5,1.5));
Hors ligne
Non je ne cherche pas à appliquer la texture sur un node, je veux juste faire du 2D
Hors ligne
ah ^^
device->getGUIEnvironment()->
addImage(driver->getTexture("image.jpg"),
core::position2d<s32>(axe.x,axe.y));
Dernière modification par Magun (26-12-2007 20:44:15)
Hors ligne
Non je veux absolument passer par un renderToTexture. Je dois pouvoir rendre une (des) image dans un renderToTexture et afficher ce résultat en draw2D image
Hors ligne
bon ben jsais pas sinon
Hors ligne
Essaye d'inverser la matrice de ta camera juste avant le render to texture et après tu la remet d'origine, mais il me semblait que se problème avait été corrigé sur la version 1.4, tu utilises laquelle ?
Hors ligne
Alors en effet, j'étais en irrlicht 1.2. Le passage en 1.4 donne des résultats surprenants, voyez plutôt :
Il s'agit à chaque fois du rendu d'un tux 32x32 dans une texture 64x64 et d'un affichage des deux textures à l'écran.
version software (résultat correct)
version direct9 (résultat pas tout à fait ok)
version opengl (carrément pas bon, la texture 64x64 prend tout l'écran et est à l'envers)
->
irr::video::ITexture *tux = driver->getTexture("tux.png"); irr::video::ITexture *t = driver->createRenderTargetTexture(irr::core::dimension2di(64, 64)); driver->setRenderTarget(t, false, false); driver->draw2DImage(tux, irr::core::position2di(0,0)); driver->setRenderTarget(0); ... driver->draw2DImage(t, irr::core::position2di(0,0)); driver->draw2DImage(tux, irr::core::position2di(100,0));
Quelqu'un peut-il m'éclairer / donner une solution ?
Hors ligne
Juste pour voir, tu devrais afficher ton image de tux sur un cube, faire ton render to texture et le récupérer en tant qu'image et voir si il est à l'endroit...
A mon avis irrlicht est pas prévu pour capturer du 2D dans un rtt tout simplement.
Hors ligne