vec4 convolve(vec4 input_colour) { float RedValue = dot(input_colour.rgb, vec3(1.0, 0.0, 0.0)); float GreenValue = dot(input_colour.rgb, vec3(0.0, 1.0, 0.0)); float BlueValue = dot(input_colour.rgb, vec3(0.0, 0.0, 1.0)); vec3 outColour = vec3(RedValue, GreenValue, BlueValue); float L = dot(input_colour.rgb, vec3(0.3, 0.59, 0.11)); vec3 C = input_colour.rgb - L; vec3 threeComps = (C * 1.8) + L; return vec4(threeComps, 1.0); }