diff --git a/Effects/lightmap.eff b/Effects/lightmap.eff index d0fa581f9..cc0cd277b 100644 --- a/Effects/lightmap.eff +++ b/Effects/lightmap.eff @@ -9,6 +9,7 @@ 1 + /sim/rendering/shader-effects @@ -97,6 +98,11 @@ colorMode int material/color-mode-uniform + + + condition + float + condition diff --git a/Shaders/lightmap.frag b/Shaders/lightmap.frag index 6296c18c0..838a01f03 100644 --- a/Shaders/lightmap.frag +++ b/Shaders/lightmap.frag @@ -9,6 +9,9 @@ varying vec4 diffuse_term; varying vec3 normal; varying float fogCoord; +// The conditional, to enable lightmapping +uniform float condition; + uniform sampler2D texture; uniform sampler2D lightmap_texture; @@ -49,8 +52,10 @@ void main() color = clamp(color, 0.0, 1.0); texel = texture2D(texture, gl_TexCoord[0].st); fragColor = color * texel + specular; - vec3 lightmapTexel = texture2D(lightmap_texture, gl_TexCoord[0].st).rgb; - fragColor.rgb = max(fragColor.rgb, lightmapTexel * gl_FrontMaterial.diffuse.rgb * texel.rgb); + if ( condition >= 1 ) { + vec3 lightmapTexel = texture2D(lightmap_texture, gl_TexCoord[0].st).rgb; + fragColor.rgb = max(fragColor.rgb, lightmapTexel * gl_FrontMaterial.diffuse.rgb * texel.rgb); + } fogFactor = exp(-gl_Fog.density * gl_Fog.density * fogCoord * fogCoord); gl_FragColor = mix(gl_Fog.color, fragColor, fogFactor); } \ No newline at end of file