summaryrefslogtreecommitdiffstats
path: root/src/GLSLShaderTest/toon.frag
diff options
context:
space:
mode:
authorkcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300>2005-12-06 19:46:01 +0000
committerkcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300>2005-12-06 19:46:01 +0000
commita6f7445079ee5b8b24e48c456dff31ff70e1b5b1 (patch)
tree3f88c2f94c24fa5e1a6ab9a2d75bfe9778c92422 /src/GLSLShaderTest/toon.frag
parentc6805f980728cf8ebe1a329dc0e584c741accc8d (diff)
Issue 198 : Need more shader example programs
1) Added Phong shading example 2) Minor mod to SphereGLSL 3) Added toon shader
Diffstat (limited to 'src/GLSLShaderTest/toon.frag')
-rw-r--r--src/GLSLShaderTest/toon.frag34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/GLSLShaderTest/toon.frag b/src/GLSLShaderTest/toon.frag
new file mode 100644
index 0000000..fa50453
--- /dev/null
+++ b/src/GLSLShaderTest/toon.frag
@@ -0,0 +1,34 @@
+//
+// Fragment shader for cartoon-style shading
+//
+// Author: Philip Rideout
+//
+// Copyright (c) 2004 3Dlabs Inc. Ltd.
+//
+// See 3Dlabs-License.txt for license information
+//
+
+//uniform vec3 DiffuseColor;
+//uniform vec3 PhongColor;
+//uniform float Edge;
+//uniform float Phong;
+
+vec3 DiffuseColor = vec3(0.5,0.5,1.0);
+vec3 PhongColor = vec3(0.75,0.75,1.0);
+float Edge = 0.64;
+float Phong = 0.90;
+
+varying vec3 Normal;
+varying vec3 LightDir;
+
+void main (void)
+{
+ vec3 color = DiffuseColor;
+ float f = max( 0.0, dot(LightDir,Normal));
+ if (abs(f) < Edge)
+ color = DiffuseColor * 0.2;
+ if (f > Phong)
+ color = PhongColor;
+
+ gl_FragColor = vec4(color, 1);
+}