void main() { const vec4 yellow = vec4(1.0, 1.0, 0.0, 1.0); const vec4 red = vec4(1.0, 0.0, 0.0, 1.0); const vec4 black = vec4(0.0, 0.0, 0.0, 1.0); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; vec4 eyePosition = gl_ModelViewMatrix * gl_Vertex; vec4 eyeLightPos = gl_LightSource[0].position; vec3 N = normalize(gl_NormalMatrix * gl_Normal); vec3 L = normalize(eyeLightPos.xyz - eyePosition.xyz); vec3 E = -normalize(eyePosition.xyz); float Kd = max(dot(L, N), 0.0); if(Kd > 0.6) gl_FrontColor = yellow; else gl_FrontColor = red; //gl_FrontColor = mix(yellow, red, Kd); if(abs(dot(E,N))<0.25) gl_FrontColor = black; }