From 8745d0a3afa7e743909be545b0db705ce0aa6566 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Wed, 20 Nov 2019 09:59:27 +0000 Subject: [PATCH] Non-linear depth buffer --- assets/voxygen/shaders/figure-vert.glsl | 1 + assets/voxygen/shaders/fluid-vert.glsl | 1 + assets/voxygen/shaders/skybox-vert.glsl | 3 ++- assets/voxygen/shaders/sprite-vert.glsl | 1 + assets/voxygen/shaders/terrain-vert.glsl | 1 + voxygen/src/scene/camera.rs | 2 +- 6 files changed, 7 insertions(+), 2 deletions(-) diff --git a/assets/voxygen/shaders/figure-vert.glsl b/assets/voxygen/shaders/figure-vert.glsl index 8e9ead9aa7..dbaf30f964 100644 --- a/assets/voxygen/shaders/figure-vert.glsl +++ b/assets/voxygen/shaders/figure-vert.glsl @@ -43,4 +43,5 @@ void main() { ).xyz); gl_Position = proj_mat * view_mat * vec4(f_pos, 1); + gl_Position.z = 1.0 / (1.0 - gl_Position.z - 10.0); } diff --git a/assets/voxygen/shaders/fluid-vert.glsl b/assets/voxygen/shaders/fluid-vert.glsl index 07834690e9..400f694d81 100644 --- a/assets/voxygen/shaders/fluid-vert.glsl +++ b/assets/voxygen/shaders/fluid-vert.glsl @@ -39,4 +39,5 @@ void main() { proj_mat * view_mat * vec4(f_pos, 1); + gl_Position.z = 1.0 / (1.0 - gl_Position.z - 10.0); } diff --git a/assets/voxygen/shaders/skybox-vert.glsl b/assets/voxygen/shaders/skybox-vert.glsl index 220bae9112..8cfe045eda 100644 --- a/assets/voxygen/shaders/skybox-vert.glsl +++ b/assets/voxygen/shaders/skybox-vert.glsl @@ -18,5 +18,6 @@ void main() { gl_Position = proj_mat * view_mat * - vec4(v_pos * 2500.0 + cam_pos.xyz, 1); + vec4(v_pos * 100000.0 + cam_pos.xyz, 1); + gl_Position.z = 0.0; } diff --git a/assets/voxygen/shaders/sprite-vert.glsl b/assets/voxygen/shaders/sprite-vert.glsl index fedbc0a749..6bbb5ea71f 100644 --- a/assets/voxygen/shaders/sprite-vert.glsl +++ b/assets/voxygen/shaders/sprite-vert.glsl @@ -53,4 +53,5 @@ void main() { proj_mat * view_mat * vec4(f_pos, 1); + gl_Position.z = 1.0 / (1.0 - gl_Position.z - 10.0); } diff --git a/assets/voxygen/shaders/terrain-vert.glsl b/assets/voxygen/shaders/terrain-vert.glsl index 61ef233cd2..9e06303fb3 100644 --- a/assets/voxygen/shaders/terrain-vert.glsl +++ b/assets/voxygen/shaders/terrain-vert.glsl @@ -40,4 +40,5 @@ void main() { proj_mat * view_mat * vec4(f_pos, 1); + gl_Position.z = 1.0 / (1.0 - gl_Position.z - 10.0); } diff --git a/voxygen/src/scene/camera.rs b/voxygen/src/scene/camera.rs index a759153e20..6af3c3eb89 100644 --- a/voxygen/src/scene/camera.rs +++ b/voxygen/src/scene/camera.rs @@ -5,7 +5,7 @@ use std::f32::consts::PI; use vek::*; const NEAR_PLANE: f32 = 0.5; -const FAR_PLANE: f32 = 5000.0; +const FAR_PLANE: f32 = 100000.0; const FIRST_PERSON_INTERP_TIME: f32 = 0.05; const THIRD_PERSON_INTERP_TIME: f32 = 0.1;