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) {