fs_upsample.sc 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. $input v_texcoord0
  2. /*
  3. * Copyright 2018 Eric Arnebäck. All rights reserved.
  4. * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE
  5. */
  6. #include "../common/common.sh"
  7. SAMPLER2D(s_tex, 0);
  8. uniform vec4 u_pixelSize;
  9. uniform vec4 u_intensity;
  10. void main()
  11. {
  12. vec2 halfpixel = u_pixelSize.xy;
  13. vec2 uv = v_texcoord0.xy;
  14. vec4 sum = vec4_splat(0.0);
  15. sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, 0.0) );
  16. sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2( 0.0, halfpixel.y) );
  17. sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2( halfpixel.x, 0.0) );
  18. sum += (2.0 / 16.0) * texture2D(s_tex, uv + vec2( 0.0, -halfpixel.y) );
  19. sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, -halfpixel.y) );
  20. sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2(-halfpixel.x, halfpixel.y) );
  21. sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2( halfpixel.x, -halfpixel.y) );
  22. sum += (1.0 / 16.0) * texture2D(s_tex, uv + vec2( halfpixel.x, halfpixel.y) );
  23. sum += (4.0 / 16.0) * texture2D(s_tex, uv);
  24. gl_FragColor = u_intensity.x * sum;
  25. }