From 94b25685c53e8a4494c71557b8db3e2570f5c287 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 6 Feb 2012 17:26:48 +0200 Subject: [PATCH 1/3] Fix calculating if block is in viewing range; fix fog and default minimum accordingly --- src/defaultsettings.cpp | 2 +- src/game.cpp | 2 +- src/utility.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 2b6cb7f53..78a1d0aa1 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -65,7 +65,7 @@ void set_default_settings(Settings *settings) settings->setDefault("wanted_fps", "30"); settings->setDefault("fps_max", "60"); settings->setDefault("viewing_range_nodes_max", "300"); - settings->setDefault("viewing_range_nodes_min", "15"); + settings->setDefault("viewing_range_nodes_min", "35"); settings->setDefault("screenW", "800"); settings->setDefault("screenH", "600"); settings->setDefault("address", ""); diff --git a/src/game.cpp b/src/game.cpp index a1f0fe07f..530291862 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -2174,7 +2174,7 @@ void the_game( } else { - range = draw_control.wanted_range*BS + MAP_BLOCKSIZE*BS*1.5; + range = draw_control.wanted_range*BS + 0.0*MAP_BLOCKSIZE*BS; range *= 0.9; if(draw_control.range_all) range = 100000*BS; diff --git a/src/utility.cpp b/src/utility.cpp index 06b60884f..7c87b9ae4 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -208,7 +208,7 @@ bool isBlockInSight(v3s16 blockpos_b, v3f camera_pos, v3f camera_dir, return true; // If block is far away, it's not in sight - if(d > range * BS) + if(d > range) return false; // Maximum radius of a block From ad5ac22442ce850ec1f9f1cfc3ca0f79fdf255f7 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 3 Feb 2012 02:24:36 +0200 Subject: [PATCH 2/3] Set default maximum viewing range to a bit more than default server send range to make fog work well --- src/defaultsettings.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 78a1d0aa1..3f6901e8f 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -64,8 +64,9 @@ void set_default_settings(Settings *settings) settings->setDefault("wanted_fps", "30"); settings->setDefault("fps_max", "60"); - settings->setDefault("viewing_range_nodes_max", "300"); + // A bit more than the server will send around the player, to make fog blend well settings->setDefault("viewing_range_nodes_min", "35"); + settings->setDefault("viewing_range_nodes_max", "128"); settings->setDefault("screenW", "800"); settings->setDefault("screenH", "600"); settings->setDefault("address", ""); From 993821a92448bf3573ac56dbfe67ee4b54172d06 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 3 Feb 2012 14:50:49 +0200 Subject: [PATCH 3/3] Tune brightness stuff and fog color --- src/game.cpp | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/game.cpp b/src/game.cpp index 530291862..670148a44 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -574,7 +574,7 @@ void update_skybox(video::IVideoDriver* driver, ITextureSource *tsrc, if(g_settings->getBool("enable_farmesh")) return;*/ - if(brightness >= 0.5) + if(brightness >= 0.7) { skybox = smgr->addSkyBoxSceneNode( tsrc->getTextureRaw("skybox2.png"), @@ -2117,14 +2117,21 @@ void the_game( u32 daynight_ratio = client.getDayNightRatio(); u8 light8 = decode_light((daynight_ratio * LIGHT_SUN) / 1000); brightness = (float)light8/255.0; - video::SColor bgcolor = video::SColor( - 255, - bgcolor_bright.getRed() * brightness, - bgcolor_bright.getGreen() * brightness, - bgcolor_bright.getBlue() * brightness); - /*skycolor.getRed() * brightness, - skycolor.getGreen() * brightness, - skycolor.getBlue() * brightness);*/ + // Make night look good + brightness = brightness * 1.15 - 0.15; + video::SColor bgcolor; + if(brightness >= 0.2 && brightness < 0.7) + bgcolor = video::SColor( + 255, + bgcolor_bright.getRed() * brightness, + bgcolor_bright.getGreen() * brightness*0.7, + bgcolor_bright.getBlue() * brightness*0.5); + else + bgcolor = video::SColor( + 255, + bgcolor_bright.getRed() * brightness, + bgcolor_bright.getGreen() * brightness, + bgcolor_bright.getBlue() * brightness); /* Update skybox @@ -2139,7 +2146,7 @@ void the_game( { clouds->step(dtime); clouds->update(v2f(player_position.X, player_position.Z), - 0.05+brightness*0.95); + brightness); } /* @@ -2155,7 +2162,7 @@ void the_game( farmesh->step(dtime); farmesh->update(v2f(player_position.X, player_position.Z), - 0.05+brightness*0.95, farmesh_range); + brightness, farmesh_range); } // Store brightness value