Advertisement
Guest User

anti-bloating.glsl

a guest
Jun 26th, 2017
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.18 KB | None | 0 0
  1. //!HOOK POSTKERNEL
  2. //!BIND HOOKED
  3. //!BIND PREKERNEL
  4. //!SAVE ab
  5. //!COMPONENTS 4
  6. //!WHEN NATIVE_CROPPED.w POSTKERNEL.w <
  7.  
  8. #define str     0.1
  9.  
  10. #define GetS(off)       Luma(PREKERNEL_tex(PREKERNEL_pt*(PREKERNEL_pos * input_size + tex_offset + off)).rgb)
  11. #define GetT(off)       Luma(HOOKED_texOff(off).rgb)
  12. #define Luma(rgb)       (dot(vec3(0.2126, 0.7152, 0.0722), rgb))
  13. #define RGBtoYUV(Kb,Kr) mat3(vec3(Kr, 1.0 - Kr - Kb, Kb), vec3(-Kr, Kr + Kb - 1.0, 1.0 - Kb) / (2.0*(1.0 - Kb)), vec3(1.0 - Kr, Kr + Kb - 1.0, -Kb) / (2.0*(1.0 - Kr)))
  14. vec4 hook() {
  15.     float d =      ( (GetT(vec2(-1.0))-GetS(vec2(-1.0))) + (GetT(vec2(1.0))-GetS(vec2(1.0))) +
  16.               (GetT(vec2(-1.0, 1.0))-GetS(vec2(-1.0, 1.0))) + (GetT(vec2(1.0,-1.0))-GetS(vec2(1.0,-1.0))) ) * 0.04 +
  17.             ( (GetT(vec2(-1.0, 0.0))-GetS(vec2(-1.0, 0.0))) + (GetT(vec2(0.0,-1.0))-GetS(vec2(0.0,-1.0))) +
  18.               (GetT(vec2( 1.0, 0.0))-GetS(vec2( 1.0, 0.0))) + (GetT(vec2(0.0, 1.0))-GetS(vec2(0.0, 1.0))) ) * 0.12 +
  19.               (GetT(vec2(0.0))-GetS(vec2(0.0))) * 0.36;
  20.  
  21.     return vec4(GetS(vec2(0.0)), GetT(vec2(0.0)) - str*d, (HOOKED_texOff(vec2(0)).rgb * RGBtoYUV(0.0722,0.2126) + vec3(0.0, 0.5, 0.5)).yz);
  22. }
  23.  
  24. //!HOOK POSTKERNEL
  25. //!BIND HOOKED
  26. //!BIND ab
  27. //!WHEN NATIVE_CROPPED.w POSTKERNEL.w <
  28.  
  29. #define str     0.1
  30.  
  31. #define GetS(off)       (ab_texOff(off).x)
  32. #define GetT(off)       (ab_texOff(off).y)
  33. #define YUVtoRGB(Kb,Kr) mat3(vec3(1.0, 0.0, 2.0*(1.0 - Kr)), vec3(Kb + Kr - 1.0, 2.0*(1.0 - Kb)*Kb, 2.0*Kr*(1.0 - Kr)) / (Kb + Kr - 1.0), vec3(1.0, 2.0*(1.0 - Kb), 0.0))
  34. vec4 hook() {
  35.     float d =      ( (GetT(vec2(-1.0))-GetS(vec2(-1.0))) + (GetT(vec2(1.0))-GetS(vec2(1.0))) +
  36.               (GetT(vec2(-1.0, 1.0))-GetS(vec2(-1.0, 1.0))) + (GetT(vec2(1.0,-1.0))-GetS(vec2(1.0,-1.0))) ) * 0.04 +
  37.             ( (GetT(vec2(-1.0, 0.0))-GetS(vec2(-1.0, 0.0))) + (GetT(vec2(0.0,-1.0))-GetS(vec2(0.0,-1.0))) +
  38.               (GetT(vec2( 1.0, 0.0))-GetS(vec2( 1.0, 0.0))) + (GetT(vec2(0.0, 1.0))-GetS(vec2(0.0, 1.0))) ) * 0.12 +
  39.               (GetT(vec2(0.0))-GetS(vec2(0.0))) * 0.36;
  40.  
  41.     return vec4(vec3(GetT(vec2(0)) - str*d, ab_texOff(vec2(0)).zw - vec2(0.5)) * YUVtoRGB(0.0722,0.2126), HOOKED_texOff(vec2(0)).a);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement