Files
oak-editor/effects/shaders/lumakey.frag
T
2019-03-13 16:55:49 +11:00

30 lines
797 B
GLSL

/* Luma key simple program
Based on Edward Cannon's Simple Chroma Key (adaptation by Olive Team)
Feel free to modify and use at will */
uniform sampler2D tex;
varying vec2 vTexCoord;
uniform float loc;
uniform float hic;
uniform bool invert;
void main(void) {
vec4 texture_color = texture2D(tex,vTexCoord);
float luma = max(max(texture_color.r,texture_color.g), texture_color.b) + min(min(texture_color.r,texture_color.g), texture_color.b);
luma /= 2.0;
if (luma > hic/100.0) {
texture_color.a = (invert ? 0.0 : 1.0);
} else if (luma < loc/100.0) {
texture_color.a = (invert ? 1.0 : 0.0);
} else {
texture_color.a = (invert ? 1.0-luma : luma);
}
texture_color.rgb *= texture_color.a;
gl_FragColor = texture_color;
}