diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index a2d37df5f..c6b84fde7 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -1899,7 +1899,7 @@ shadow_poisson_filter (Poisson filtering) bool true # Minimum value: 1; maximum value: 16 # # Requires: enable_dynamic_shadows, opengl -shadow_update_frames (Map shadows update frames) int 8 1 16 +shadow_update_frames (Map shadows update frames) int 16 1 32 # Set to true to render debugging breakdown of the bloom effect. # In debug mode, the screen is split into 4 quadrants: diff --git a/src/client/shadows/dynamicshadows.cpp b/src/client/shadows/dynamicshadows.cpp index a5eea8f38..a186fc41b 100644 --- a/src/client/shadows/dynamicshadows.cpp +++ b/src/client/shadows/dynamicshadows.cpp @@ -13,18 +13,6 @@ using m4f = core::matrix4; -static v3f quantizeDirection(v3f direction, float step) -{ - - float yaw = std::atan2(direction.Z, direction.X); - float pitch = std::asin(direction.Y); // assume look is normalized - - yaw = std::floor(yaw / step) * step; - pitch = std::floor(pitch / step) * step; - - return v3f(std::cos(yaw)*std::cos(pitch), std::sin(pitch), std::sin(yaw)*std::cos(pitch)); -} - void DirectionalLight::createSplitMatrices(const Camera *cam) { static const float COS_15_DEG = 0.965926f; @@ -74,7 +62,7 @@ void DirectionalLight::createSplitMatrices(const Camera *cam) v3f boundVec = (cam_pos_scene + farCorner * sfFar) - center_scene; float radius = boundVec.getLength(); float length = radius * 3.0f; - v3f eye_displacement = quantizeDirection(direction, M_PI / 2880 /*15 seconds*/) * length; + v3f eye_displacement = direction * length; // we must compute the viewmat with the position - the camera offset // but the future_frustum position must be the actual world position diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index f2bcea1b5..ad36456f5 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -341,7 +341,7 @@ void set_default_settings() settings->setDefault("shadow_map_color", "false"); settings->setDefault("shadow_filters", "1"); settings->setDefault("shadow_poisson_filter", "true"); - settings->setDefault("shadow_update_frames", "8"); + settings->setDefault("shadow_update_frames", "16"); settings->setDefault("shadow_soft_radius", "5.0"); settings->setDefault("shadow_sky_body_orbit_tilt", "0.0");