28 lines
692 B
GLSL
28 lines
692 B
GLSL
|
|
#version 450
|
||
|
|
|
||
|
|
#extension GL_ARB_separate_shader_objects : enable
|
||
|
|
#extension GL_ARB_shading_language_420pack : enable
|
||
|
|
|
||
|
|
layout (binding = 0) uniform sampler2D samplerSSAO;
|
||
|
|
|
||
|
|
layout (location = 0) in vec2 inUV;
|
||
|
|
|
||
|
|
layout (location = 0) out float outFragColor;
|
||
|
|
|
||
|
|
const int blurSize = 4;
|
||
|
|
|
||
|
|
void main()
|
||
|
|
{
|
||
|
|
const int blurRange = 2;
|
||
|
|
vec2 texelSize = 1.0 / vec2(textureSize(samplerSSAO, 0));
|
||
|
|
float result = 0.0;
|
||
|
|
for (int x = -blurRange; x < blurRange; x++)
|
||
|
|
{
|
||
|
|
for (int y = -blurRange; y < blurRange; y++)
|
||
|
|
{
|
||
|
|
vec2 offset = vec2(float(x), float(y)) * texelSize;
|
||
|
|
result += texture(samplerSSAO, inUV + offset).r;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
outFragColor = result / (blurRange * blurRange * blurRange * blurRange);
|
||
|
|
}
|