#version 330 in vec4 vvertex; void main(void) { gl_Position = vvertex; } #version 330 uniform sampler2DMS tex1; void main(void) { vec4 e = texelFetch(tex1, ivec2(gl_FragCoord.xy), 0); e.xyz -= 0.5; float maxdiff = 0.98*0.98*dot(e.xyz, e.xyz); vec4 e1 = texelFetch(tex1, ivec2(gl_FragCoord.xy), 1); e1.xyz -= 0.5; if(abs(e.w-e1.w) <= 2.0/255.0 && pow(dot(e1.xyz, e.xyz), 2.0) >= maxdiff*dot(e1.xyz, e1.xyz)) { vec4 e2 = texelFetch(tex1, ivec2(gl_FragCoord.xy), 2); e2.xyz -= 0.5; if(abs(e.w-e2.w) <= 2.0/255.0 && pow(dot(e2.xyz, e.xyz), 2.0) >= maxdiff*dot(e2.xyz, e2.xyz)) { vec4 e3 = texelFetch(tex1, ivec2(gl_FragCoord.xy), 3); e3.xyz -= 0.5; if(abs(e.w-e3.w) <= 2.0/255.0 && pow(dot(e3.xyz, e.xyz), 2.0) >= maxdiff*dot(e3.xyz, e3.xyz)) { discard; } } } }