27 lines
646 B
GLSL
27 lines
646 B
GLSL
precision mediump float;
|
|
|
|
uniform sampler2D texture;
|
|
uniform vec3 color;
|
|
uniform float alpha;
|
|
|
|
varying vec2 pass_TexCoords;
|
|
|
|
vec3 saturateColor(in vec3 color, in float a);
|
|
|
|
void main() {
|
|
|
|
float a = texture2D(texture, pass_TexCoords).a * alpha;
|
|
vec3 black = vec3(0.0, 0.0, 0.0);
|
|
gl_FragColor.rgb = mix(color, black, 1.0 - a);
|
|
gl_FragColor.a = a;
|
|
|
|
}
|
|
|
|
vec3 saturateColor(in vec3 color, in float a){
|
|
|
|
float grayscale = (color.r * 0.299 + color.g * 0.587 + color. b * 0.114);
|
|
float alpha = ((1.1 - a) * 0.5) * 40.0;
|
|
|
|
return alpha * color + (1.0 - alpha) * vec3(grayscale, grayscale, grayscale);
|
|
|
|
} |