vertex
varying vec3 normal, lightDir, eyeVec;
void main()
{
normal = gl_NormalMatrix * gl_Normal;
vec3 vVertex = vec3(gl_ModelViewMatrix * gl_Vertex);
lightDir = vec3(gl_LightSource[0].position.xyz - vVertex);
eyeVec = -vVertex;
gl_Position = ftransform();
}
fragment
varying vec3 normal, lightDir, eyeVec;
uniform float lineWidth;
uniform int levels;
void main (void)
{
vec4 final_color =
(gl_FrontLightModelProduct.sceneColor * gl_FrontMaterial.ambient) +
(gl_LightSource[0].ambient * gl_FrontMaterial.ambient);
vec3 N = normalize(normal);
vec3 L = normalize(lightDir);
vec3 E = normalize(eyeVec);
vec3 R = reflect(L, N);
float lambertTerm = dot(N,L);
gl_FragColor = vec4(dot(N, E), 0.0, 0.0, 1.0);
}