Historique des modifications - Message

Message #8111

Sujet: Scale sur un bone


Type Date Auteur Contenu
Dernière modification 17-03-2010 12:18:50 Ilovechocolat
Voila j'ai fini, voici la code d'une fonction qui superpose deux images, l'image doit avoir un canal alpha a 100% pour que ce soit pris en compte :

Code c++ :

irr::video::ITexture* superposerImageSurTexture(irr::video::IVideoDriver* driver, irr::video::ITexture* texture, char* image)
{
	irr::video::IImage* imageConteneur = driver->createImage(texture, irr::core::position2d<irr::s32>(0,0), texture->getSize());
	irr::video::ITexture* texture2 = driver->getTexture(image);
	irr::video::IImage* imageContenueSup = driver->createImage(texture2, irr::core::position2d<irr::s32>(0,0), texture->getSize());
    for(int x = 0; x < texture->getSize().Width; x++)
    {
        for(int y = 0; y < texture->getSize().Height; y++)
        {
			irr::video::SColor pixel1 = imageConteneur->getPixel(x, y);
			irr::video::SColor pixel2 = imageContenueSup->getPixel(x, y);
			if(pixel2.getAlpha() != 0)
				imageConteneur->setPixel(x, y, imageContenueSup->getPixel(x, y));
        }
    }
	return driver->addTexture("__3D_view_texture__", imageConteneur);
}


Utilise le comme ça :

Code c++ :

irr::video::ITexture* texture = driver->getTexture("sydney.bmp");
		node->setMaterialTexture(0, superposerImageSurTexture(driver, texture, "sydney.png"));
Création du message 17-03-2010 12:18:00 Ilovechocolat
Voila j'ai fini, voici la code d'une fonction qui superpose deux images, l'image doit avoir un canal alpha a 100% pour que ce soit pris en compte :

Code c++ :

irr::video::ITexture* superposerImageSurTexture(irr::video::IVideoDriver* driver, irr::video::ITexture* texture, char* image)
{
	irr::video::IImage* imageConteneur = driver->createImage(texture, irr::core::position2d<irr::s32>(0,0), texture->getSize());
	irr::video::ITexture* texture2 = driver->getTexture(image);
	irr::video::IImage* imageContenueSup = driver->createImage(texture2, irr::core::position2d<irr::s32>(0,0), texture->getSize());
    for(int x = 0; x < texture->getSize().Width; x++)
    {
        for(int y = 0; y < texture->getSize().Height; y++)
        {
			irr::video::SColor pixel1 = imageConteneur->getPixel(x, y);
			irr::video::SColor pixel2 = imageContenueSup->getPixel(x, y);
			if(pixel2.getAlpha() != 0)
				imageConteneur->setPixel(x, y, imageContenueSup->getPixel(x, y));
        }
    }
	return driver->addTexture("__3D_view_texture__", imageConteneur);
}


Utilise le comme ça :

Code c++ :

irr::video::ITexture* texture = driver->getTexture("sydney.bmp");
		node->setMaterialTexture(0, superposerImageSurTexture(driver, texture, "sydney.png"));

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