ssaoBlurFragment.fs 819 B

12345678910111213141516171819202122232425262728
  1. #version 430
  2. layout (binding = 1) uniform sampler2D worldPositionSamp;
  3. layout (binding = 2) uniform sampler2D worldNormalSamp;
  4. layout (binding = 3) uniform sampler2D worldColorSamp;
  5. layout (binding = 4) uniform sampler2D worldDepthSamp;
  6. layout (binding = 5) uniform sampler2D noiseSamp;
  7. layout (binding = 6) uniform sampler2D ssaoSamp;
  8. in vec2 varTextureCoord;
  9. out float color;
  10. void main()
  11. {
  12. vec2 texelSize = 1.0 / vec2(textureSize(ssaoSamp, 0));
  13. float result = 0.0;
  14. const int radius = 2;
  15. for(int x = -radius; x < radius; x++)
  16. {
  17. for(int y = -radius; y < radius; y++)
  18. {
  19. vec2 offset = vec2(float(x), float(y)) * texelSize;
  20. result += texture(ssaoSamp, varTextureCoord + offset).r;
  21. }
  22. }
  23. result /= (radius * radius * 4);
  24. color = result;
  25. }