bloom.fs 859 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #version 100
  2. precision mediump float;
  3. // Input vertex attributes (from vertex shader)
  4. varying vec2 fragTexCoord;
  5. varying vec4 fragColor;
  6. // Input uniform values
  7. uniform sampler2D texture0;
  8. uniform vec4 fragTintColor;
  9. // NOTE: Add here your custom variables
  10. void main()
  11. {
  12. vec4 sum = vec4(0);
  13. vec4 tc = vec4(0);
  14. for (int i = -4; i < 4; i++)
  15. {
  16. for (int j = -3; j < 3; j++)
  17. {
  18. sum += texture2D(texture0, fragTexCoord + vec2(j, i)*0.004) * 0.25;
  19. }
  20. }
  21. // Texel color fetching from texture sampler
  22. vec4 texelColor = texture2D(texture0, fragTexCoord);
  23. // Calculate final fragment color
  24. if (texelColor.r < 0.3) tc = sum*sum*0.012 + texelColor;
  25. else if (texelColor.r < 0.5) tc = sum*sum*0.009 + texelColor;
  26. else tc = sum*sum*0.0075 + texelColor;
  27. gl_FragColor = tc;
  28. }