diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-10-18 21:08:31 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-10-18 21:08:31 +0300 |
commit | 9b907dd65a2c045d10605894fdaea504200e2be7 (patch) | |
tree | 411bffac25c47471bdd05eabcbf7c210ec3a231d | |
parent | 28f2fdb6dec0c54ce9e32df79a73ef19aee03fd5 (diff) | |
download | minetest-9b907dd65a2c045d10605894fdaea504200e2be7.tar.gz minetest-9b907dd65a2c045d10605894fdaea504200e2be7.tar.bz2 minetest-9b907dd65a2c045d10605894fdaea504200e2be7.zip |
Try to tune fog to work well on high-end machines also
-rw-r--r-- | src/camera.cpp | 4 | ||||
-rw-r--r-- | src/defaultsettings.cpp | 1 | ||||
-rw-r--r-- | src/game.cpp | 11 | ||||
-rw-r--r-- | src/map.cpp | 12 |
4 files changed, 17 insertions, 11 deletions
diff --git a/src/camera.cpp b/src/camera.cpp index ecb5a17f4..a32336714 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -342,7 +342,7 @@ void Camera::updateViewingRange(f32 frametime_in) <<std::endl;*/ m_draw_control.wanted_min_range = m_viewing_range_min; - m_draw_control.wanted_max_blocks = (1.5*m_draw_control.blocks_would_have_drawn)+1; + m_draw_control.wanted_max_blocks = (2.0*m_draw_control.blocks_would_have_drawn)+1; if (m_draw_control.wanted_max_blocks < 10) m_draw_control.wanted_max_blocks = 10; @@ -366,7 +366,7 @@ void Camera::updateViewingRange(f32 frametime_in) // If needed frametime change is small, just return // This value was 0.4 for many months until 2011-10-18 by c55; // Let's see how this works out. - if (fabs(wanted_frametime_change) < m_wanted_frametime*0.25) + if (fabs(wanted_frametime_change) < m_wanted_frametime*0.33) { //dstream<<"ignoring small wanted_frametime_change"<<std::endl; return; diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index b05d060ac..d88440812 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -45,6 +45,7 @@ void set_default_settings(Settings *settings) settings->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 e3380ace4..c67660ec8 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 febc40ddd..ba4130ca2 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; |