blur-v.frag 1.0 KB

12345678910111213141516171819202122232425
  1. #version 130
  2. uniform sampler2D RTBlurH; // this should hold the texture rendered by the horizontal blur pass
  3. varying vec2 vTexCoord;
  4. uniform float blurSize = 1.0 / 400.0;
  5. void main(void)
  6. {
  7. vec4 sum = vec4(0.0);
  8. // blur in y (vertical)
  9. // take nine samples, with the distance blurSize between them
  10. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - 4.0*blurSize)) * 0.05;
  11. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - 3.0*blurSize)) * 0.09;
  12. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - 2.0*blurSize)) * 0.12;
  13. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - blurSize)) * 0.15;
  14. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y)) * 0.16;
  15. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + blurSize)) * 0.15;
  16. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + 2.0*blurSize)) * 0.12;
  17. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + 3.0*blurSize)) * 0.09;
  18. sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + 4.0*blurSize)) * 0.05;
  19. gl_FragColor = sum;
  20. }