varying vec4 diffuse, ambient;
varying vec3 normal, lightDir, halfVector;

void main() {

    // transform normal to eye space
	normal = normalize(gl_NormalMatrix * gl_Normal);

    // normalize light direction
	lightDir = normalize(vec3(gl_LightSource[0].position));

	// normalize the halfVector to pass it to the fragment shader
	halfVector = normalize(gl_LightSource[0].halfVector.xyz);
	
	// compute diffuse and ambient colors
	diffuse = gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse;
    ambient = gl_FrontMaterial.ambient * (gl_LightSource[0].ambient + gl_LightModel.ambient);
	
    // transform position
	gl_Position = ftransform();
	
} 
