diff --git a/Effects/terrain-default.eff b/Effects/terrain-default.eff
index fa48f7a..f33f133 100644
--- a/Effects/terrain-default.eff
+++ b/Effects/terrain-default.eff
@@ -137,6 +137,11 @@
int
2
+
+ overlay
+ sampler-2d
+ 3
+
lequal
false
diff --git a/Shaders/default.frag b/Shaders/default.frag
index 52afbaf..161cd50 100644
--- a/Shaders/default.frag
+++ b/Shaders/default.frag
@@ -6,6 +6,7 @@ varying vec3 normal;
varying float fogCoord;
uniform sampler2D texture;
+uniform sampler2D overlay;
float luminance(vec3 color)
{
@@ -43,6 +44,9 @@ void main()
// is closer to what the OpenGL fixed function pipeline does.
color = clamp(color, 0.0, 1.0);
texel = texture2D(texture, gl_TexCoord[0].st);
+ vec4 texel2 = texture2D(overlay, gl_TexCoord[3].st);
+ texel = mix(texel, texel2, texel2.a);
+
fragColor = color * texel + specular;
fogFactor = exp(-gl_Fog.density * gl_Fog.density * fogCoord * fogCoord);
gl_FragColor = mix(gl_Fog.color, fragColor, fogFactor);
diff --git a/Shaders/default.vert b/Shaders/default.vert
index 74089f0..8babb99 100644
--- a/Shaders/default.vert
+++ b/Shaders/default.vert
@@ -26,6 +26,7 @@ void main()
vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;
gl_Position = ftransform();
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+ gl_TexCoord[3] = gl_TextureMatrix[3] * gl_MultiTexCoord3;
normal = gl_NormalMatrix * gl_Normal;
vec4 ambient_color, diffuse_color;
if (colorMode == MODE_DIFFUSE) {