Color gradient for default and 'regular' type sky (#9502)

* add regular sky gradient

* add regular sky gradient

* Update sky.cpp

* change default day sky colors
This commit is contained in:
TheTermos 2020-05-09 17:14:56 +02:00 committed by GitHub
parent b6242498aa
commit 7cb53791c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 31 deletions

View File

@ -252,35 +252,10 @@ void Sky::render()
if (m_visible) {
driver->setMaterial(m_materials[1]);
for (u32 j = 0; j < 4; j++) {
video::SColor c = cloudyfogcolor.getInterpolated(m_skycolor, 0.45);
vertices[0] = video::S3DVertex(-1, 0.08, -1, 0, 0, 1, c, t, t);
vertices[1] = video::S3DVertex( 1, 0.08, -1, 0, 0, 1, c, o, t);
vertices[2] = video::S3DVertex( 1, 0.12, -1, 0, 0, 1, c, o, o);
vertices[3] = video::S3DVertex(-1, 0.12, -1, 0, 0, 1, c, t, o);
for (video::S3DVertex &vertex : vertices) {
if (j == 0)
// Don't switch
{}
else if (j == 1)
// Switch from -Z (south) to +X (east)
vertex.Pos.rotateXZBy(90);
else if (j == 2)
// Switch from -Z (south) to -X (west)
vertex.Pos.rotateXZBy(-90);
else
// Switch from -Z (south) to +Z (north)
vertex.Pos.rotateXZBy(-180);
}
driver->drawIndexedTriangleFan(&vertices[0], 4, indices, 2);
}
// Draw far cloudy fog thing at and below all horizons
for (u32 j = 0; j < 4; j++) {
video::SColor c = cloudyfogcolor;
vertices[0] = video::S3DVertex(-1, -1.0, -1, 0, 0, 1, c, t, t);
vertices[1] = video::S3DVertex( 1, -1.0, -1, 0, 0, 1, c, o, t);
vertices[2] = video::S3DVertex( 1, 0.08, -1, 0, 0, 1, c, o, o);
vertices[3] = video::S3DVertex(-1, 0.08, -1, 0, 0, 1, c, t, o);
vertices[0] = video::S3DVertex(-1, -0.02, -1, 0, 0, 1, m_bgcolor, t, t);
vertices[1] = video::S3DVertex( 1, -0.02, -1, 0, 0, 1, m_bgcolor, o, t);
vertices[2] = video::S3DVertex( 1, 0.45, -1, 0, 0, 1, m_skycolor, o, o);
vertices[3] = video::S3DVertex(-1, 0.45, -1, 0, 0, 1, m_skycolor, t, o);
for (video::S3DVertex &vertex : vertices) {
if (j == 0)
// Don't switch

View File

@ -76,12 +76,12 @@ public:
{
SkyColor sky;
// Horizon colors
sky.day_horizon = video::SColor(255, 155, 193, 240);
sky.day_horizon = video::SColor(255, 144, 211, 246);
sky.indoors = video::SColor(255, 100, 100, 100);
sky.dawn_horizon = video::SColor(255, 186, 193, 240);
sky.night_horizon = video::SColor(255, 64, 144, 255);
// Sky colors
sky.day_sky = video::SColor(255, 140, 186, 250);
sky.day_sky = video::SColor(255, 97, 181, 245);
sky.dawn_sky = video::SColor(255, 180, 186, 250);
sky.night_sky = video::SColor(255, 0, 107, 255);
return sky;