Fragment-shader blur ... how does this work?

Posted by anon on Stack Overflow See other posts from Stack Overflow or by anon
Published on 2010-03-13T10:24:23Z Indexed on 2010/03/13 10:25 UTC
Read the original article Hit count: 266

Filed under:
uniform sampler2D sampler0;
uniform vec2 tc_offset[9];
void blur()
{
  vec4 sample[9];
  for(int i = 0; i < 9; ++i)
    sample[i] = texture2D(sampler0, gl_TexCoord[0].st + tc_offset[i]);

  gl_FragColor = (sample[0] + (2.0 * sample[1]) + sample[2] +
      (2.0 * sample[3]) + sample[4] + 2.0 * sample[5] +
      sample[6] + 2.0 * sample[7] + sample[8] ) / 13.0;
}

How does the sample[i] = texture2D(sample0, ...) line work?

It seems like to blur an image, I have to first generate the image, yet here, I'm somehow trying to query the very iamge I'm generating. How does this work?

© Stack Overflow or respective owner

Related posts about fragment-shader