forked from Mirrorlandia_minetest/minetest
made proper skyboxes for dawn/evening and night
This commit is contained in:
parent
a5df5f8291
commit
a73b10eb1c
BIN
data/skybox1_dawn.png
Normal file
BIN
data/skybox1_dawn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 598 B |
BIN
data/skybox1_night.png
Normal file
BIN
data/skybox1_night.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
BIN
data/skybox2_dawn.png
Normal file
BIN
data/skybox2_dawn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 199 B |
BIN
data/skybox2_night.png
Normal file
BIN
data/skybox2_night.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
BIN
data/skybox3_dawn.png
Normal file
BIN
data/skybox3_dawn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 190 B |
BIN
data/skybox3_night.png
Normal file
BIN
data/skybox3_night.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 190 B |
66
src/game.cpp
66
src/game.cpp
@ -580,6 +580,47 @@ void getPointedNode(Client *client, v3f player_position,
|
|||||||
} // for coords
|
} // for coords
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void update_skybox(video::IVideoDriver* driver,
|
||||||
|
scene::ISceneManager* smgr, scene::ISceneNode* &skybox,
|
||||||
|
float brightness)
|
||||||
|
{
|
||||||
|
if(skybox)
|
||||||
|
{
|
||||||
|
skybox->remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(brightness >= 0.5)
|
||||||
|
{
|
||||||
|
skybox = smgr->addSkyBoxSceneNode(
|
||||||
|
driver->getTexture(porting::getDataPath("skybox2.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox3.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1.png").c_str()));
|
||||||
|
}
|
||||||
|
else if(brightness >= 0.2)
|
||||||
|
{
|
||||||
|
skybox = smgr->addSkyBoxSceneNode(
|
||||||
|
driver->getTexture(porting::getDataPath("skybox2_dawn.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox3_dawn.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_dawn.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_dawn.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_dawn.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_dawn.png").c_str()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skybox = smgr->addSkyBoxSceneNode(
|
||||||
|
driver->getTexture(porting::getDataPath("skybox2_night.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox3_night.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_night.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_night.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_night.png").c_str()),
|
||||||
|
driver->getTexture(porting::getDataPath("skybox1_night.png").c_str()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void the_game(
|
void the_game(
|
||||||
bool &kill,
|
bool &kill,
|
||||||
bool random_input,
|
bool random_input,
|
||||||
@ -718,14 +759,9 @@ void the_game(
|
|||||||
/*
|
/*
|
||||||
Create skybox
|
Create skybox
|
||||||
*/
|
*/
|
||||||
scene::ISceneNode* skybox;
|
float old_brightness = 1.0;
|
||||||
skybox = smgr->addSkyBoxSceneNode(
|
scene::ISceneNode* skybox = NULL;
|
||||||
driver->getTexture(porting::getDataPath("skybox2.png").c_str()),
|
update_skybox(driver, smgr, skybox, 1.0);
|
||||||
driver->getTexture(porting::getDataPath("skybox3.png").c_str()),
|
|
||||||
driver->getTexture(porting::getDataPath("skybox1.png").c_str()),
|
|
||||||
driver->getTexture(porting::getDataPath("skybox1.png").c_str()),
|
|
||||||
driver->getTexture(porting::getDataPath("skybox1.png").c_str()),
|
|
||||||
driver->getTexture(porting::getDataPath("skybox1.png").c_str()));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Create the camera node
|
Create the camera node
|
||||||
@ -1682,12 +1718,24 @@ void the_game(
|
|||||||
skycolor.getGreen() * l / 255,
|
skycolor.getGreen() * l / 255,
|
||||||
skycolor.getBlue() * l / 255);*/
|
skycolor.getBlue() * l / 255);*/
|
||||||
|
|
||||||
|
float brightness = (float)l/255.0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Update skybox
|
||||||
|
*/
|
||||||
|
if(fabs(brightness - old_brightness) > 0.01)
|
||||||
|
update_skybox(driver, smgr, skybox, brightness);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Update coulds
|
Update coulds
|
||||||
*/
|
*/
|
||||||
clouds->step(dtime);
|
clouds->step(dtime);
|
||||||
clouds->update(v2f(player_position.X, player_position.Z), (float)l/255.0);
|
clouds->update(v2f(player_position.X, player_position.Z),
|
||||||
|
0.05+brightness*0.95);
|
||||||
|
|
||||||
|
// Store brightness value
|
||||||
|
old_brightness = brightness;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Fog
|
Fog
|
||||||
*/
|
*/
|
||||||
|
@ -2001,7 +2001,8 @@ inline u32 time_to_daynight_ratio(u32 time_of_day)
|
|||||||
s32 d = daylength;
|
s32 d = daylength;
|
||||||
s32 t = (((time_of_day)%24000)/(24000/d));
|
s32 t = (((time_of_day)%24000)/(24000/d));
|
||||||
if(t < nightlength/2 || t >= d - nightlength/2)
|
if(t < nightlength/2 || t >= d - nightlength/2)
|
||||||
return 300;
|
//return 300;
|
||||||
|
return 350;
|
||||||
else if(t >= d/2 - daytimelength/2 && t < d/2 + daytimelength/2)
|
else if(t >= d/2 - daytimelength/2 && t < d/2 + daytimelength/2)
|
||||||
return 1000;
|
return 1000;
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user