summaryrefslogtreecommitdiffstats
path: root/headtrack_stereo_demo/shaders/greyscale.frag
blob: 6ed03e3c4df5040871df9aa48cec051283ca60bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
varying vec4 diffuse,ambient;
	varying vec3 normal,lightDir,halfVector;
	
	
	void main()
	{
		vec3 n,halfV;
		float NdotL,NdotHV;
		
		/* The ambient term will always be present */
		vec4 color = ambient;
		
		/* a fragment shader can't write a varying variable, hence we need
		a new variable to store the normalized interpolated normal */
		n = normalize(normal);
		
		/* compute the dot product between normal and ldir */
		NdotL = max(dot(n,lightDir),0.0);
		if (NdotL > 0.0) {
			color += diffuse * NdotL;
			halfV = normalize(halfVector);
			NdotHV = max(dot(n,halfV),0.0);
			color += gl_FrontMaterial.specular * 
					gl_LightSource[0].specular * 
					pow(NdotHV, gl_FrontMaterial.shininess);
		}
	
		float gray = dot(color, vec3(0.299, 0.587, 0.114));

		gl_FragColor = vec4(gray, gray, gray, color[3]);;
}