I have 2 objects one behind the other. I have enabled alpha blending and using uniform variable to pass alpha value in fragment shader. My Frag shader:
Code :
#version 130
uniform float a;
out vec4 color;
void main (void)  
{  
    if(a==1.0)
    color=vec4(0.3, 0.7, 0.5,a);
else 
          color=vec4(1.0,1.0,1.0,a);    
}

Before 1st draw call I set a=1 and before 2nd draw call i set a=0.5. Now when I see from front I can see 1st object through second one. But when I change the camera and go back in front of 1st object, I can see second one through first one even if i have a=1 for 1st object. My blending equation is:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);