aboutsummaryrefslogtreecommitdiff
path: root/client/shaders/wielded_shader/opengl_fragment.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'client/shaders/wielded_shader/opengl_fragment.glsl')
-rw-r--r--client/shaders/wielded_shader/opengl_fragment.glsl31
1 files changed, 16 insertions, 15 deletions
diff --git a/client/shaders/wielded_shader/opengl_fragment.glsl b/client/shaders/wielded_shader/opengl_fragment.glsl
index ba7a8f12d..546aef71d 100644
--- a/client/shaders/wielded_shader/opengl_fragment.glsl
+++ b/client/shaders/wielded_shader/opengl_fragment.glsl
@@ -75,7 +75,8 @@ void main(void)
}
#endif
- if (GENERATE_NORMALMAPS == 1 && normalTexturePresent == false) {
+#if GENERATE_NORMALMAPS == 1
+ if (normalTexturePresent == false) {
float tl = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y + SAMPLE_STEP));
float t = get_rgb_height(vec2(uv.x - SAMPLE_STEP, uv.y - SAMPLE_STEP));
float tr = get_rgb_height(vec2(uv.x + SAMPLE_STEP, uv.y + SAMPLE_STEP));
@@ -89,6 +90,7 @@ void main(void)
bump = vec4(normalize(vec3 (dX, dY, NORMALMAPS_STRENGTH)), 1.0);
use_normalmap = true;
}
+#endif
vec4 base = texture2D(baseTexture, uv).rgba;
@@ -108,19 +110,18 @@ void main(void)
vec4 col = vec4(color.rgb, base.a);
col *= gl_Color;
- if (fogDistance != 0.0) {
- // Due to a bug in some (older ?) graphics stacks (possibly in the glsl compiler ?),
- // the fog will only be rendered correctly if the last operation before the
- // clamp() is an addition. Else, the clamp() seems to be ignored.
- // E.g. the following won't work:
- // float clarity = clamp(fogShadingParameter
- // * (fogDistance - length(eyeVec)) / fogDistance), 0.0, 1.0);
- // As additions usually come for free following a multiplication, the new formula
- // should be more efficient as well.
- // Note: clarity = (1 - fogginess)
- float clarity = clamp(fogShadingParameter
- - fogShadingParameter * length(eyeVec) / fogDistance, 0.0, 1.0);
- col = mix(skyBgColor, col, clarity);
- }
+ // Due to a bug in some (older ?) graphics stacks (possibly in the glsl compiler ?),
+ // the fog will only be rendered correctly if the last operation before the
+ // clamp() is an addition. Else, the clamp() seems to be ignored.
+ // E.g. the following won't work:
+ // float clarity = clamp(fogShadingParameter
+ // * (fogDistance - length(eyeVec)) / fogDistance), 0.0, 1.0);
+ // As additions usually come for free following a multiplication, the new formula
+ // should be more efficient as well.
+ // Note: clarity = (1 - fogginess)
+ float clarity = clamp(fogShadingParameter
+ - fogShadingParameter * length(eyeVec) / fogDistance, 0.0, 1.0);
+ col = mix(skyBgColor, col, clarity);
+
gl_FragColor = vec4(col.rgb, base.a);
}