Made character the centre of the fog

This commit is contained in:
Joshua Barretto 2019-06-05 19:08:03 +01:00
parent 732ba9ac02
commit d663da27b5
4 changed files with 5 additions and 5 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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