26 lines
641 B
GLSL
26 lines
641 B
GLSL
#version 330 core
|
|
|
|
uniform sampler2D tex0;
|
|
in vec2 v_texCoord0;
|
|
out vec4 o_color;
|
|
|
|
uniform int passIndex;
|
|
uniform int sampleCount;
|
|
uniform int sampleCountBase;
|
|
uniform vec2 passDirection;
|
|
|
|
|
|
void main() {
|
|
vec2 passOffset = vec2(pow(sampleCountBase, passIndex)) * (1.0/textureSize(tex0, 0)) * passDirection;
|
|
|
|
vec2 uv0 = v_texCoord0;
|
|
vec4 result = vec4(0.0);
|
|
for (int i = 0; i < sampleCount; ++i) {
|
|
vec2 readUV = v_texCoord0 - vec2(i *passOffset);
|
|
float factor = step(0.0, readUV.x) * step(0.0, readUV.y);
|
|
result += factor * texture(tex0, readUV);
|
|
}
|
|
|
|
o_color = result;
|
|
|
|
} |