blur1DShader7 top-level property

ShaderObject blur1DShader7
final

Implementation

final ShaderObject blur1DShader7 = ShaderObject("blurF")
  ..AddUniformVars([uTexture, uDirection])
  ..SetBody([
    """
void main() {
    vec4 sum = vec4(0.0);
    vec2 c = gl_FragCoord.xy;
    vec2 d = ${uDirection};
    sum  += texelFetch(${uTexture}, ivec2(c - 3.0 * d), 0) * (1.0 / 64.0);
    sum  += texelFetch(${uTexture}, ivec2(c - 2.0 * d), 0) * (6.0 / 64.0);
    sum  += texelFetch(${uTexture}, ivec2(c - 1.0 * d), 0) * (15.0 / 64.0);
    sum  += texelFetch(${uTexture}, ivec2(c)          , 0) * (20.0 / 64.0);
    sum  += texelFetch(${uTexture}, ivec2(c + 1.0 * d), 0) * (15.0 / 64.0);
    sum  += texelFetch(${uTexture}, ivec2(c + 2.0 * d), 0) * (6.0 / 64.0);
    sum  += texelFetch(${uTexture}, ivec2(c + 3.0 * d), 0) * (1.0 / 64.0);
    ${oFragColor} = sum;
}
"""
  ]);