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

@ -252,35 +252,10 @@ void Sky::render()
if (m_visible) { if (m_visible) {
driver->setMaterial(m_materials[1]); driver->setMaterial(m_materials[1]);
for (u32 j = 0; j < 4; j++) { for (u32 j = 0; j < 4; j++) {
video::SColor c = cloudyfogcolor.getInterpolated(m_skycolor, 0.45); vertices[0] = video::S3DVertex(-1, -0.02, -1, 0, 0, 1, m_bgcolor, t, t);
vertices[0] = video::S3DVertex(-1, 0.08, -1, 0, 0, 1, c, t, t); vertices[1] = video::S3DVertex( 1, -0.02, -1, 0, 0, 1, m_bgcolor, o, t);
vertices[1] = video::S3DVertex( 1, 0.08, -1, 0, 0, 1, c, o, t); vertices[2] = video::S3DVertex( 1, 0.45, -1, 0, 0, 1, m_skycolor, o, o);
vertices[2] = video::S3DVertex( 1, 0.12, -1, 0, 0, 1, c, o, o); vertices[3] = video::S3DVertex(-1, 0.45, -1, 0, 0, 1, m_skycolor, t, 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);
for (video::S3DVertex &vertex : vertices) { for (video::S3DVertex &vertex : vertices) {
if (j == 0) if (j == 0)
// Don't switch // Don't switch

@ -76,12 +76,12 @@ public:
{ {
SkyColor sky; SkyColor sky;
// Horizon colors // 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.indoors = video::SColor(255, 100, 100, 100);
sky.dawn_horizon = video::SColor(255, 186, 193, 240); sky.dawn_horizon = video::SColor(255, 186, 193, 240);
sky.night_horizon = video::SColor(255, 64, 144, 255); sky.night_horizon = video::SColor(255, 64, 144, 255);
// Sky colors // 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.dawn_sky = video::SColor(255, 180, 186, 250);
sky.night_sky = video::SColor(255, 0, 107, 255); sky.night_sky = video::SColor(255, 0, 107, 255);
return sky; return sky;