#1 

26-12-2007 18:13:17

khayyam
Membres
Date d'inscription:
Messages: 25
IP: 88.168.68.63
Courriel  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é.

	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

		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


#2 

26-12-2007 18:49:52

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 78.116.70.193
Courriel  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


#3 

26-12-2007 19:14:08

khayyam
Membres
Date d'inscription:
Messages: 25
IP: 88.168.68.63
Courriel  Site web

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


Hors ligne


#4 

26-12-2007 19:42:46

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 78.116.70.193
Courriel  Site web

ah ^^
device->getGUIEnvironment()->
addImage(driver->getTexture("image.jpg"),
core::position2d<s32>(axe.x,axe.y));

Hors ligne


#5 

26-12-2007 19:46:07

khayyam
Membres
Date d'inscription:
Messages: 25
IP: 88.168.68.63
Courriel  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


#6 

26-12-2007 20:05:12

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 78.116.70.193
Courriel  Site web

bon ben jsais pas sinon sad

Hors ligne


#7 

26-12-2007 20:17:40

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 90.5.150.22
Courriel  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


#8 

27-12-2007 15:23:32

khayyam
Membres
Date d'inscription:
Messages: 25
IP: 88.168.68.63
Courriel  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)


  • >
    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


#9 

27-12-2007 22:56:44

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 90.5.150.22
Courriel  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é
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
154 invités en ligne
membre en ligne: -
RSS Feed