From 19184a49a763b9d4a8df3589c892c93d7f722375 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Wed, 21 Apr 2021 22:18:44 +0100 Subject: [PATCH] Made the pit of tartarus less bad --- assets/voxygen/shaders/lod-terrain-frag.glsl | 2 +- assets/voxygen/shaders/lod-terrain-vert.glsl | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/assets/voxygen/shaders/lod-terrain-frag.glsl b/assets/voxygen/shaders/lod-terrain-frag.glsl index 1fe702656c..6d8d6b2695 100644 --- a/assets/voxygen/shaders/lod-terrain-frag.glsl +++ b/assets/voxygen/shaders/lod-terrain-frag.glsl @@ -107,7 +107,7 @@ void main() { // mat4 invfoo = foo * inverse(foo * all_mat); // vec3 old_coord = all_mat * vec4(f_pos.xyz, 1.0); // vec4 new_f_pos = invfoo * (old_coord);//vec4(f_pos, 1.0); - vec3 f_col_raw = mix(lod_col(f_pos.xy), vec3(0), clamp(pull_down / 10, 0, 1)); + vec3 f_col_raw = mix(lod_col(f_pos.xy), vec3(0), clamp(pull_down / 30, 0, 1)); // tgt_color = vec4(f_col, 1.0); // return; // vec3 f_col = srgb_to_linear(vec3(1.0)); diff --git a/assets/voxygen/shaders/lod-terrain-vert.glsl b/assets/voxygen/shaders/lod-terrain-vert.glsl index c482ad367b..5f03cf934c 100644 --- a/assets/voxygen/shaders/lod-terrain-vert.glsl +++ b/assets/voxygen/shaders/lod-terrain-vert.glsl @@ -49,7 +49,8 @@ void main() { // f_shadow = textureBicubic(t_horizon, pos_to_tex(f_pos.xy)); - pull_down = 1.0 / pow(distance(focus_pos.xy, f_pos.xy) / (view_distance.x * 0.95), 20.0); + float dist = distance(focus_pos.xy, f_pos.xy); + pull_down = 0.2 / pow(dist / (view_distance.x * 0.9), 20.0); f_pos.z -= pull_down; // f_pos.z -= 100.0 * pow(1.0 + 0.01 / view_distance.x, -pow(distance(focus_pos.xy, f_pos.xy), 2.0)); @@ -98,6 +99,8 @@ void main() { view_mat * */ all_mat * vec4(f_pos/*newRay*/, 1); + // Pull up the depth to avoid drawing over voxels (biased according to VD) + gl_Position.z += 0.1 * clamp((view_distance.x * 1.0 - dist) * 0.01, 0, 1); // gl_Position.z = -gl_Position.z / gl_Position.w; // gl_Position.z = -gl_Position.z / gl_Position.w; // gl_Position.z = -gl_Position.z * gl_Position.w;