From 9b907dd65a2c045d10605894fdaea504200e2be7 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 18 Oct 2011 21:08:31 +0300 Subject: [PATCH] Try to tune fog to work well on high-end machines also --- src/camera.cpp | 4 ++-- src/defaultsettings.cpp | 1 + src/game.cpp | 11 ++++++++--- src/map.cpp | 12 ++++++------ 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/camera.cpp b/src/camera.cpp index ecb5a17f..a3233671 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -342,7 +342,7 @@ void Camera::updateViewingRange(f32 frametime_in) <setDefault("keymap_frametime_graph", "KEY_F1"); settings->setDefault("keymap_screenshot", "KEY_F12"); settings->setDefault("keymap_toggle_profiler", "KEY_F2"); + settings->setDefault("keymap_toggle_force_fog_off", "KEY_F3"); // Some (temporary) keys for debugging settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P"); diff --git a/src/game.cpp b/src/game.cpp index e3380ace..c67660ec 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -952,6 +952,8 @@ void the_game( bool show_profiler = false; + bool force_fog_off = false; + /* Main loop */ @@ -1323,6 +1325,10 @@ void the_game( show_profiler = !show_profiler; guitext_profiler->setVisible(show_profiler); } + else if(input->wasKeyDown(getKeySetting("keymap_toggle_force_fog_off"))) + { + force_fog_off = !force_fog_off; + } // Item selection with mouse wheel { @@ -1971,7 +1977,7 @@ void the_game( Fog */ - if(g_settings->getBool("enable_fog") == true) + if(g_settings->getBool("enable_fog") == true && !force_fog_off) { f32 range; if(farmesh) @@ -1981,12 +1987,11 @@ void the_game( else { range = draw_control.wanted_range*BS + MAP_BLOCKSIZE*BS*1.5; + range *= 0.9; if(draw_control.range_all) range = 100000*BS; /*if(range < 50*BS) range = range * 0.5 + 25*BS;*/ - // Move the invisible limit a bit further - //range *= 1.2; } driver->setFog( diff --git a/src/map.cpp b/src/map.cpp index febc40dd..ba4130ca 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -3659,13 +3659,13 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass) // Take a fair amount as we will be dropping more out later // Umm... these additions are a bit strange but they are needed. v3s16 p_blocks_min( - p_nodes_min.X / MAP_BLOCKSIZE - 2, - p_nodes_min.Y / MAP_BLOCKSIZE - 2, - p_nodes_min.Z / MAP_BLOCKSIZE - 2); + p_nodes_min.X / MAP_BLOCKSIZE - 3, + p_nodes_min.Y / MAP_BLOCKSIZE - 3, + p_nodes_min.Z / MAP_BLOCKSIZE - 3); v3s16 p_blocks_max( - p_nodes_max.X / MAP_BLOCKSIZE + 0, - p_nodes_max.Y / MAP_BLOCKSIZE + 0, - p_nodes_max.Z / MAP_BLOCKSIZE + 0); + p_nodes_max.X / MAP_BLOCKSIZE + 1, + p_nodes_max.Y / MAP_BLOCKSIZE + 1, + p_nodes_max.Z / MAP_BLOCKSIZE + 1); u32 vertex_count = 0; u32 meshbuffer_count = 0;