From a6f7445079ee5b8b24e48c456dff31ff70e1b5b1 Mon Sep 17 00:00:00 2001 From: kcr Date: Tue, 6 Dec 2005 19:46:01 +0000 Subject: Issue 198 : Need more shader example programs 1) Added Phong shading example 2) Minor mod to SphereGLSL 3) Added toon shader --- src/GLSLShaderTest/toon.frag | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/GLSLShaderTest/toon.frag (limited to 'src/GLSLShaderTest/toon.frag') 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); +} -- cgit v1.2.3