Code: Select all
ISceneNode* skydome;
ITexture* skytex;
u8 aph=200;
bool direction;
//==========
void Sky()
{
u32 size = skytex->getSize().Width * skytex->getSize().Height;
u16* color = (u16*)skytex->lock();
u8 n_col;
video::SColor m_col;
for(u32 j=0; j<size; ++j)
{
m_col.setRed(getRed(color[j])-aph);
m_col.setGreen(getGreen(color[j])-aph);
m_col.setBlue(getBlue(color[j])-aph);
m_col.toOpenGLColor(&n_col);
color[j] = (u16)n_col;
}
skytex->unlock();
skydome->setMaterialTexture(0, skytex);
if(!direction) aph++;
else aph--;
if(aph >= 255) direction = true;
if(aph <= 150) direction = false;
}
//==========
int main()
{
skytex = driver->getTexture("../draganddroptest/media/skybox/skydome.jpg");
skydome = smgr->addSkyDomeSceneNode(skytex);
//...
while(device->run())
{
driver->beginScene(true, true, SColor(255,100,101,140));
Sky();
smgr->drawAll();
guienv->drawAll();
driver->endScene();
}
device->drop();
return 0;
}
