Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- precision mediump float;
- uniform sampler2D u_Texture0;
- uniform sampler2D u_Texture1;
- varying vec2 v_TexCoordinate;
- const vec3 W = vec3(0.2125, 0.7154, 0.0721);
- //JASNOŚĆ, KONTRAST, SATURACJA
- vec3 BrightnessContrastSaturation(vec3 color, float brt, float con, float sat)
- {
- vec3 black = vec3(0., 0., 0.);
- vec3 middle = vec3(0.5, 0.5, 0.5);
- float luminance = dot(color, W);
- vec3 gray = vec3(luminance, luminance, luminance);
- vec3 brtColor = mix(black, color, brt);
- vec3 conColor = mix(middle, brtColor, con);
- vec3 satColor = mix(gray, conColor, sat);
- return satColor;
- }
- //DODAJE INNY OBRAZ W TRYBIE OVERLAY
- vec3 ovelayBlender(vec3 Color, vec3 filter){
- vec3 filter_result;
- float luminance = dot(filter, W);
- if(luminance < 0.5)
- filter_result = 2. * filter * Color;
- else
- filter_result = 1. - (1. - (2. *(filter - 0.5)))*(1. - Color);
- return filter_result;
- }
- void main()
- {
- vec2 st = v_TexCoordinate.st;
- vec3 irgb = texture2D(u_Texture0, st).rgb;
- vec3 filter = texture2D(u_Texture1, st).rgb;
- float T_bright = 1.2;
- float T_contrast = 1.0;
- float T_saturation = 0.9;
- vec3 bcs_result = BrightnessContrastSaturation(irgb, T_bright, T_contrast, T_saturation);
- //WIĘCEJ CZERWONEGO, MNIEJ NIEBIESKIEGO
- vec3 rb_result = vec3(bcs_result.r*1.1, bcs_result.g, bcs_result.b*0.9);
- vec3 after_filter = mix(rb_result, ovelayBlender(rb_result, filter), 0.5);
- gl_FragColor = vec4(after_filter, 1.);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement