]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - client/shaders/object_shader/opengl_fragment.glsl
Cleanup shader generation code (#10663)
[dragonfireclient.git] / client / shaders / object_shader / opengl_fragment.glsl
index 86d5c1c9248074ed1bd2a313fe40d8c7065dfc63..12cc54ae7ac4a6a3ee295e9b99809181f5dfb86f 100644 (file)
@@ -8,6 +8,8 @@ uniform vec3 eyePosition;
 varying vec3 vNormal;
 varying vec3 vPosition;
 varying vec3 worldPosition;
+varying lowp vec4 varColor;
+centroid varying mediump vec2 varTexCoord;
 
 varying vec3 eyeVec;
 varying float vIDiff;
@@ -15,9 +17,9 @@ varying float vIDiff;
 const float e = 2.718281828459;
 const float BS = 10.0;
 const float fogStart = FOG_START;
-const float fogShadingParameter = 1 / ( 1 - fogStart);
+const float fogShadingParameter = 1.0 / (1.0 - fogStart);
 
-#ifdef ENABLE_TONE_MAPPING
+#if ENABLE_TONE_MAPPING
 
 /* Hable's UC2 Tone mapping parameters
        A = 0.22;
@@ -41,7 +43,7 @@ vec4 applyToneMapping(vec4 color)
        const float gamma = 1.6;
        const float exposureBias = 5.5;
        color.rgb = uncharted2Tonemap(exposureBias * color.rgb);
-       // Precalculated white_scale from 
+       // Precalculated white_scale from
        //vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W));
        vec3 whiteScale = vec3(1.036015346);
        color.rgb *= whiteScale;
@@ -52,13 +54,14 @@ vec4 applyToneMapping(vec4 color)
 void main(void)
 {
        vec3 color;
-       vec2 uv = gl_TexCoord[0].st;
+       vec2 uv = varTexCoord.st;
 
        vec4 base = texture2D(baseTexture, uv).rgba;
 
 #ifdef USE_DISCARD
        // If alpha is zero, we can just discard the pixel. This fixes transparency
-       // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa.
+       // on GPUs like GC7000L, where GL_ALPHA_TEST is not implemented in mesa,
+       // and also on GLES 2, where GL_ALPHA_TEST is missing entirely.
        if (base.a == 0.0) {
                discard;
        }
@@ -68,11 +71,11 @@ void main(void)
 
        vec4 col = vec4(color.rgb, base.a);
 
-       col.rgb *= gl_Color.rgb;
+       col.rgb *= varColor.rgb;
 
        col.rgb *= emissiveColor.rgb * vIDiff;
 
-#ifdef ENABLE_TONE_MAPPING
+#if ENABLE_TONE_MAPPING
        col = applyToneMapping(col);
 #endif