summaryrefslogtreecommitdiffstats
path: root/headtrack_stereo_demo/shaders/greyscale.frag
diff options
context:
space:
mode:
Diffstat (limited to 'headtrack_stereo_demo/shaders/greyscale.frag')
-rw-r--r--headtrack_stereo_demo/shaders/greyscale.frag31
1 files changed, 31 insertions, 0 deletions
diff --git a/headtrack_stereo_demo/shaders/greyscale.frag b/headtrack_stereo_demo/shaders/greyscale.frag
new file mode 100644
index 0000000..6ed03e3
--- /dev/null
+++ b/headtrack_stereo_demo/shaders/greyscale.frag
@@ -0,0 +1,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]);;
+} \ No newline at end of file