summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/shaders/minimap_shader/opengl_fragment.glsl32
-rw-r--r--client/shaders/minimap_shader/opengl_vertex.glsl11
2 files changed, 43 insertions, 0 deletions
diff --git a/client/shaders/minimap_shader/opengl_fragment.glsl b/client/shaders/minimap_shader/opengl_fragment.glsl
new file mode 100644
index 000000000..fa4f9cb1a
--- /dev/null
+++ b/client/shaders/minimap_shader/opengl_fragment.glsl
@@ -0,0 +1,32 @@
+uniform sampler2D baseTexture;
+uniform sampler2D normalTexture;
+uniform vec3 yawVec;
+
+void main (void)
+{
+ vec2 uv = gl_TexCoord[0].st;
+
+ //texture sampling rate
+ const float step = 1.0 / 256.0;
+ float tl = texture2D(normalTexture, vec2(uv.x - step, uv.y + step)).r;
+ float t = texture2D(normalTexture, vec2(uv.x - step, uv.y - step)).r;
+ float tr = texture2D(normalTexture, vec2(uv.x + step, uv.y + step)).r;
+ float r = texture2D(normalTexture, vec2(uv.x + step, uv.y)).r;
+ float br = texture2D(normalTexture, vec2(uv.x + step, uv.y - step)).r;
+ float b = texture2D(normalTexture, vec2(uv.x, uv.y - step)).r;
+ float bl = texture2D(normalTexture, vec2(uv.x - step, uv.y - step)).r;
+ float l = texture2D(normalTexture, vec2(uv.x - step, uv.y)).r;
+ float dX = (tr + 2.0 * r + br) - (tl + 2.0 * l + bl);
+ float dY = (bl + 2.0 * b + br) - (tl + 2.0 * t + tr);
+ vec4 bump = vec4 (normalize(vec3 (dX, dY, 0.1)),1.0);
+ float height = 2.0 * texture2D(normalTexture, vec2(uv.x, uv.y)).r - 1.0;
+ vec4 base = texture2D(baseTexture, uv).rgba;
+ vec3 L = normalize(vec3(0.0, 0.75, 1.0));
+ float specular = pow(clamp(dot(reflect(L, bump.xyz), yawVec), 0.0, 1.0), 1.0);
+ float diffuse = dot(yawVec, bump.xyz);
+
+ vec3 color = (1.1 * diffuse + 0.05 * height + 0.5 * specular) * base.rgb;
+ vec4 col = vec4(color.rgb, base.a);
+ col *= gl_Color;
+ gl_FragColor = vec4(col.rgb, base.a);
+}
diff --git a/client/shaders/minimap_shader/opengl_vertex.glsl b/client/shaders/minimap_shader/opengl_vertex.glsl
new file mode 100644
index 000000000..06df5a3cf
--- /dev/null
+++ b/client/shaders/minimap_shader/opengl_vertex.glsl
@@ -0,0 +1,11 @@
+uniform mat4 mWorldViewProj;
+uniform mat4 mInvWorld;
+uniform mat4 mTransWorld;
+uniform mat4 mWorld;
+
+void main(void)
+{
+ gl_TexCoord[0] = gl_MultiTexCoord0;
+ gl_Position = mWorldViewProj * gl_Vertex;
+ gl_FrontColor = gl_BackColor = gl_Color;
+}