Historique des modifications - Message

Message #8113

Sujet: Plusieurs texture sur une mesh


TypeDateAuteurContenu
Création du message17-03-2010 17:40:55narugohan
Bon, j'ai trouvé une solution, je vous la passe :

La fonction :

Code c++ :


irr::video::ITexture* textureSuperpose(irr::video::IVideoDriver* driver, int nbxTexture, char* image[])
{    
    irr::video::ITexture* texture[nbxTexture];
    irr::video::IImage* imageContenueSup[nbxTexture-1];
    
    for( int i=0; i<nbxTexture; i++)
         texture[i] = driver->getTexture(image[i]);
    
    irr::video::IImage* imageConteneur = driver->createImage(texture[0], irr::core::position2d<irr::s32>(0,0), texture[0]->getSize());

    for( int i=0; i<nbxTexture-1; i++)
         imageContenueSup[i] = driver->createImage(texture[i+1], irr::core::position2d<irr::s32>(0,0), texture[0]->getSize());

    for(int x = 0; x < texture[0]->getSize().Width; x++)
    {
        for(int y = 0; y < texture[0]->getSize().Height; y++)
        {
            irr::video::SColor pixel = imageConteneur->getPixel(x, y);
            irr::video::SColor pixelCont[nbxTexture-1];
            
            for( int i=0; i<nbxTexture-1; i++)
            {
                 pixelCont[i] = imageContenueSup[i]->getPixel(x, y);
                 if( pixelCont[i].getAlpha() != 0 )
                     imageConteneur->setPixel(x, y, imageContenueSup[i]->getPixel(x, y));
            }
            
        }
    }
    return driver->addTexture("__3D_view_texture__", imageConteneur);
}


Utilisation de la fonction :

Code c++ :


char* cheminTexture[2];
         cheminTexture[0] = "texturePrincipale.jpg";
         cheminTexture[1] = "texture2.png";
         cheminTexture[2] = "texture3.png";
node->setMaterialTexture(0, textureSuperpose( driver, 3, cheminTexture));


Voilà, en espérent que sa aidera certaine personne ;p

PS : Je remerci ILovechocolat car c'est grâce à lui il m'a donné base pour faire mettre 1 texture en superposition et je les amélioré pour faire en sorte de pouvoir mettre plusieurs textures en superpostion, encore merçi à lui

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
45 invités en ligne
membre en ligne: -
RSS Feed