I have applied used this blur shader:
[vert]
#version 130
uniform float radius_x, radius_y; // typycally radius_x = 1.0 / (texture resolution x)
void main()
{
gl_TexCoord[0] = gl_MultiTexCoord0 - vec4(-radius_x, 0.0, 0.0, 0.0);
gl_TexCoord[1] = gl_MultiTexCoord0 - vec4(radius_x, 0.0, 0.0, 0.0);
gl_TexCoord[2] = gl_MultiTexCoord0 - vec4(0.0, -radius_y, 0.0, 0.0);
gl_TexCoord[3] = gl_MultiTexCoord0 - vec4(0.0, radius_y, 0.0, 0.0);
gl_Position = ftransform();
}
[frag]
#version 130
uniform sampler2D tex_unit_0; // texture from previous blurring stage
void main()
{
vec4 sample[4];
sample[0] = texture2D(tex_unit_0, gl_TexCoord[0].st);
sample[1] = texture2D(tex_unit_0, gl_TexCoord[1].st);
sample[2] = texture2D(tex_unit_0, gl_TexCoord[2].st);
sample[3] = texture2D(tex_unit_0, gl_TexCoord[3].st);
gl_FragColor = (sample[0] + sample[1] + sample[2] + sample[3]) / 4.0;
}
and have used the following code to use this shader:
glUniform1f(glGetUniformLocation( g_render.m_blurProgram , "radius_x"), 1.5/textureSize );
glUniform1f(glGetUniformLocation( g_render.m_blurProgram , "radius_y"), 1.5/textureSize );
glUniform1i(glGetUniformLocation( g_render.m_blurProgram , "tex_unit_0"), 0 );
glUseProgram( g_render.m_blurProgram );
glClearColor( 0,0,0,0 );
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity();
gluOrtho2D(0, 1, 0, 1 );
glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity();
glPushAttrib( GL_VIEWPORT_BIT | GL_CURRENT_BIT );
glDisable( GL_LIGHTING );
glDisable( GL_CULL_FACE );
glBegin(GL_QUADS);
glTexCoord2i(0, 0); glVertex2i(0, 0 );
glTexCoord2i(1, 0); glVertex2i(1, 0 );
glTexCoord2i(1, 1); glVertex2i(1, 1 );
glTexCoord2i(0, 1); glVertex2i(0, 1 );
glEnd();
glEnable( GL_LIGHTING );
glFlush();
glUseProgram(0);
glActiveTexture( GL_TEXTURE0 );
glDisable( GL_TEXTURE_2D );
glBindTexture( GL_TEXTURE_2D, 0);
glEnable( GL_CULL_FACE );
glPopAttrib();
glMatrixMode(GL_PROJECTION); glPopMatrix();
glMatrixMode(GL_MODELVIEW); glPopMatrix();
But the shader doesn’t change my texture at all. What’s the problem?