drunk.swsl 966 B

12345678910111213141516171819202122
  1. uniform sampler2D SCREEN_TEXTURE;
  2. uniform highp float boozePower;
  3. const highp float TimeScale = 0.5;
  4. const highp float DistortionScale = 0.01;
  5. void fragment() {
  6. highp float mod = mix(0.0, DistortionScale, boozePower);
  7. highp vec2 coord = FRAGCOORD.xy * SCREEN_PIXEL_SIZE.xy;
  8. highp float time = TIME * TimeScale;
  9. highp vec2 offset = vec2((mod * 1.5) * sin(time * 1.5), (mod * 2.0) * cos(time * 1.5 - 0.2));
  10. highp vec4 tex1 = zTextureSpec(SCREEN_TEXTURE, coord + offset);
  11. if (boozePower > 0.5) {
  12. offset = vec2((mod * 2.0 - DistortionScale) * sin(time * 0.333 - 0.2), (mod * 2.0 - DistortionScale) * cos(time * 0.333));
  13. tex1 = mix(tex1, zTextureSpec(SCREEN_TEXTURE, coord + offset), mix(0.0, 0.3, boozePower*2.0-1.0));
  14. }
  15. offset = vec2((mod * 1.0) * sin(time * 1.0 + 0.1), (mod * 1.0) * cos(time * 1.0));
  16. COLOR = mix(tex1, zTextureSpec(SCREEN_TEXTURE, coord + offset), mix(0.0, 0.5, boozePower));
  17. }