#ifdef GL_ES precision mediump float; precision mediump int; #endif uniform sampler2D texture; varying vec4 vertColor; varying vec4 vertTexCoord; uniform float brightPassThreshold; void main() { vec3 luminanceVector = vec3(0.2125, 0.7154, 0.0721); vec4 c = texture2D(texture, vertTexCoord.st) * vertColor; float luminance = dot(luminanceVector, c.xyz); luminance = max(0.0, luminance - brightPassThreshold); c.xyz *= sign(luminance); c.a = 1.0; gl_FragColor = c; }