Pages

Gin Rummy Indian Rummy Nine Men's Morris and more Air Attack

Friday, 13 February 2015

Color saturation or gray scale implementation in OpenGL



To implement gray scaling we need to modify slightly the fragment shader. 

Conversion equation that I am using is,


Red * 0.299 + Green * 0.587 + Blue 0.144


The fragment shader used to do gray scaling is shown below,
                                                           
uniform sampler2D u_sampler;
uniform int u_compliment;

varying vec2 v_texturecoord;

void main()
{
    vec4 clr = texture2D(u_sampler, v_texturecoord);
    float l = clr.r*0.299 + clr.g*0.587 + clr.b*0.114;
    l = clamp(l, 0.0, 1.0);
    if (u_compliment == 1) {
        l = 1.0 - l;
    }                   
    gl_FragColor = vec4(l, l, l, clr.a);
}


For complete source code visit https://github.com/trsquarelab/glexamples

No comments:

Post a comment