#0 

26-12-2007 19:13:17

khayyam
Membre
Date d'inscription: 04-03-2007
Messages: 25
Site web

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é.

Code:

    irr::video::ITexture *tux = driver->getTexture("tux.png");
        
    irr::video::ITexture *t = driver->createRenderTargetTexture(core::dimension2di(64,64));
    driver->setRenderTarget(t, false, false); 

    driver->draw2DImage(tux, irr::core::position2di(0,0));    

    driver->setRenderTarget(0);

et un affichage avec

Code:

        driver->draw2DImage(t, irr::core::position2di(10,10));
        driver->draw2DImage(tux, irr::core::position2di(150,10));

mais t apparait la tête en bas, quelqu'un a une idée ?

Hors ligne


#1 

26-12-2007 19:49:52

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 908
Corrections: 2
Site web

tu veut apliquer une texture sur un node ?
si ses sa tu fait sa smile

    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


#2 

26-12-2007 20:14:08

khayyam
Membre
Date d'inscription: 04-03-2007
Messages: 25
Site web

Non je ne cherche pas à appliquer la texture sur un node, je veux juste faire du 2D

Hors ligne


#3 

26-12-2007 20:42:46

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 908
Corrections: 2
Site web

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


#4 

26-12-2007 20:46:07

khayyam
Membre
Date d'inscription: 04-03-2007
Messages: 25
Site web

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


#5 

26-12-2007 21:05:12

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 908
Corrections: 2
Site web

bon ben jsais pas sinon sad

Hors ligne


#6 

26-12-2007 21:17:40

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

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 ?


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#7 

27-12-2007 16:23:32

khayyam
Membre
Date d'inscription: 04-03-2007
Messages: 25
Site web

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)


->

Code:

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


#8 

27-12-2007 23:56:44

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

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.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
28 invités en ligne
Aucun membre connecté
RSS Feed