scene-fragment.glsl 946 Bytes
Newer Older
1 2 3 4 5 6 7
uniform sampler2D sample;
uniform float textureWidth;
uniform float textureHeight;
uniform float opacity;
uniform float brightness;
uniform float saturation;
uniform int debug;
8
uniform int u_forceAlpha;
9

10
varying vec2 varyingTexCoords;
11

12
//varying vec4 color;
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

// Converts pixel coordinates to texture coordinates
vec2 pix2tex( vec2 pix )
{
    return vec2( pix.s / textureWidth, pix.t / textureHeight );
}

void main() {
    vec4 tex = texture2D(sample, pix2tex(varyingTexCoords));
    if( saturation != 1.0 ) {
        vec3 desaturated = tex.rgb * vec3( 0.30, 0.59, 0.11 );
        desaturated = vec3( dot( desaturated, tex.rgb ));
        tex.rgb = tex.rgb * vec3( saturation ) + desaturated * vec3( 1.0 - saturation );
    }
    tex.rgb = tex.rgb * opacity * brightness;
    tex.a = tex.a * opacity;
29 30 31
    if (u_forceAlpha > 0) {
        tex.a = 1.0;
    }
32
    /*if (debug != 0) {
33
        tex.g += 0.5;
34
    }*/
35
        
36
    gl_FragColor = tex;
37
}