diff options
Diffstat (limited to 'shaders')
-rw-r--r-- | shaders/terrain_fragment.glsl | 3 | ||||
-rw-r--r-- | shaders/terrain_vertex.glsl | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/shaders/terrain_fragment.glsl b/shaders/terrain_fragment.glsl index 0925c6b..c3f0d46 100644 --- a/shaders/terrain_fragment.glsl +++ b/shaders/terrain_fragment.glsl @@ -4,7 +4,7 @@ varying vec3 normal, light_pos, pos; uniform sampler2D tex[3]; uniform sampler2D marktex; -uniform vec3 selpos; +uniform vec3 selpos, player_pos; uniform bool show_sel; void main() { @@ -27,6 +27,7 @@ void main() { vec2 st = vec2((pos.x + 1 - selpos.x) / 2, (pos.z + 1 - selpos.z) / 2); gl_FragColor += texture2D(marktex, st); } + gl_FragColor = mix(gl_FragColor, gl_Fog.color, pow(length(player_pos - pos), 2) / 10000); } /* vim: set syn=glsl: */ diff --git a/shaders/terrain_vertex.glsl b/shaders/terrain_vertex.glsl index 5fcd17b..27da83f 100644 --- a/shaders/terrain_vertex.glsl +++ b/shaders/terrain_vertex.glsl @@ -1,11 +1,12 @@ #version 120 varying vec3 normal, light_pos, pos; +uniform vec2 chunk_pos; void main() { normal = gl_Normal; light_pos = vec3(0, 1, 0); - pos = gl_Vertex.xyz; + pos = gl_Vertex.xyz + vec3(chunk_pos.x, 0, chunk_pos.y); gl_TexCoord[0] = gl_MultiTexCoord0; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; |