diff --git a/voxygen/shaders/figure.frag b/voxygen/shaders/figure.frag index e68dbb4e5d..36dd375a00 100644 --- a/voxygen/shaders/figure.frag +++ b/voxygen/shaders/figure.frag @@ -40,7 +40,7 @@ void main() { vec3 surf_color = model_col.rgb * f_col * (ambient + sun_diffuse); - float fog_level = fog(f_pos.xy, cam_pos.xy); + float fog_level = fog(f_pos.xy, focus_pos.xy); vec3 fog_color = get_sky_color(normalize(f_pos - cam_pos.xyz), time_of_day.x); vec3 color = mix(surf_color, fog_color, fog_level); diff --git a/voxygen/shaders/include/sky.glsl b/voxygen/shaders/include/sky.glsl index ef280ca283..4935c155f5 100644 --- a/voxygen/shaders/include/sky.glsl +++ b/voxygen/shaders/include/sky.glsl @@ -19,8 +19,8 @@ vec3 get_sky_color(vec3 dir, float time_of_day) { return mix(SKY_BOTTOM, SKY_TOP, (dir.z + 1.0) / 2.0) + sun_light; } -float fog(vec2 f_pos, vec2 cam_pos) { - float dist = distance(f_pos, cam_pos) / view_distance.x; +float fog(vec2 f_pos, vec2 focus_pos) { + float dist = distance(f_pos, focus_pos) / view_distance.x; float min_fog = 0.5; float max_fog = 1.0; diff --git a/voxygen/shaders/terrain.frag b/voxygen/shaders/terrain.frag index 93a08fe02b..b45d545ae4 100644 --- a/voxygen/shaders/terrain.frag +++ b/voxygen/shaders/terrain.frag @@ -43,7 +43,7 @@ void main() { vec3 surf_color = f_col * light; - float fog_level = fog(f_pos.xy, cam_pos.xy); + float fog_level = fog(f_pos.xy, focus_pos.xy); vec3 fog_color = get_sky_color(normalize(f_pos - cam_pos.xyz), time_of_day.x); vec3 color = mix(surf_color, fog_color, fog_level); diff --git a/voxygen/src/scene/mod.rs b/voxygen/src/scene/mod.rs index a76f3a2c9f..305fbca348 100644 --- a/voxygen/src/scene/mod.rs +++ b/voxygen/src/scene/mod.rs @@ -131,7 +131,7 @@ impl Scene { // Update chunk loaded distance smoothly for nice shader fog let loaded_distance = client.loaded_distance().unwrap_or(1) as f32 * 32.0; - self.loaded_distance = 0.98 * self.loaded_distance + 0.02 * loaded_distance; + self.loaded_distance = (0.98 * self.loaded_distance + 0.02 * loaded_distance).max(0.1); // Update global constants. renderer