
varying float alpha;

#vertexshader

uniform vec3 camera_pos;
attribute vec3 polypos0;
attribute vec3 polypos1;
attribute vec3 normal0;
attribute vec3 normal1;

void main()
{
	vec4 d0 = gl_ModelViewMatrix*vec4(polypos0,1.0);// - vec4(camera_pos, 1.0);
	vec4 d1 = gl_ModelViewMatrix*vec4(polypos1,1.0);// - vec4(camera_pos, 1.0);
	float s0 = dot(d0.xyz, gl_NormalMatrix*normal0);
	float s1 = dot(d1.xyz, gl_NormalMatrix*normal1);
	alpha = 0.0;
	if(sign(s0) != sign(s1) || (dot(normal0, normal1) < 0.75 && s0 < 0.0 && s1 < 0.0))
		alpha = 1.0;
	
	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}

#fragmentshader

void main()
{
	gl_FragColor = vec4(4.0, 4.0, 4.0, alpha);
}
