diff options
author | kcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300> | 2005-12-06 19:46:01 +0000 |
---|---|---|
committer | kcr <kcr@28c7f869-5b4e-e670-f602-82bfaf57f300> | 2005-12-06 19:46:01 +0000 |
commit | a6f7445079ee5b8b24e48c456dff31ff70e1b5b1 (patch) | |
tree | 3f88c2f94c24fa5e1a6ab9a2d75bfe9778c92422 /src/GLSLShaderTest/toon.frag | |
parent | c6805f980728cf8ebe1a329dc0e584c741accc8d (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.frag | 34 |
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); +} |