Advertisement
stirante

Untitled

Dec 22nd, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. precision mediump float;
  2. uniform sampler2D u_Texture0;
  3. uniform sampler2D u_Texture1;
  4. varying vec2 v_TexCoordinate;
  5. const vec3 W = vec3(0.2125, 0.7154, 0.0721);
  6.  
  7. //JASNOŚĆ, KONTRAST, SATURACJA
  8. vec3 BrightnessContrastSaturation(vec3 color, float brt, float con, float sat)
  9. {
  10.     vec3 black = vec3(0., 0., 0.);
  11.     vec3 middle = vec3(0.5, 0.5, 0.5);
  12.     float luminance = dot(color, W);
  13.     vec3 gray = vec3(luminance, luminance, luminance);
  14.    
  15.     vec3 brtColor = mix(black, color, brt);
  16.     vec3 conColor = mix(middle, brtColor, con);
  17.     vec3 satColor = mix(gray, conColor, sat);
  18.     return satColor;
  19. }
  20.  
  21. //DODAJE INNY OBRAZ W TRYBIE OVERLAY
  22. vec3 ovelayBlender(vec3 Color, vec3 filter){
  23.     vec3 filter_result;
  24.  
  25.     float luminance = dot(filter, W);
  26.    
  27.     if(luminance < 0.5)
  28.         filter_result = 2. * filter * Color;
  29.     else
  30.         filter_result = 1. - (1. - (2. *(filter - 0.5)))*(1. - Color);
  31.        
  32.     return filter_result;
  33. }
  34.  
  35. void main()
  36. {
  37.      vec2 st = v_TexCoordinate.st;
  38.      vec3 irgb = texture2D(u_Texture0, st).rgb;
  39.      vec3 filter = texture2D(u_Texture1, st).rgb;
  40.      
  41.      float T_bright = 1.2;
  42.      float T_contrast = 1.0;
  43.      float T_saturation = 0.9;
  44.      vec3 bcs_result = BrightnessContrastSaturation(irgb, T_bright, T_contrast, T_saturation);
  45.      
  46.      //WIĘCEJ CZERWONEGO, MNIEJ NIEBIESKIEGO
  47.      vec3 rb_result = vec3(bcs_result.r*1.1, bcs_result.g, bcs_result.b*0.9);
  48.      
  49.      vec3 after_filter = mix(rb_result, ovelayBlender(rb_result, filter), 0.5);
  50.        
  51.      gl_FragColor = vec4(after_filter, 1.);
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement