diff options
author | Brian <brian@yutani.localnet.net> | 2007-01-15 17:27:24 -0700 |
---|---|---|
committer | Brian <brian@yutani.localnet.net> | 2007-01-15 17:27:24 -0700 |
commit | 2ccd26469541ef042bb1aec8ade3dc4736f694cf (patch) | |
tree | 90132405bcf4384d9bfe76e88e18f363b923b674 /progs/glsl/CH18-mandel.vert.txt | |
parent | f6507157e290b783c036e9459886e0f7ae60ef7b (diff) |
Added new directory of GL shading language demos: glsl
Diffstat (limited to 'progs/glsl/CH18-mandel.vert.txt')
-rw-r--r-- | progs/glsl/CH18-mandel.vert.txt | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/progs/glsl/CH18-mandel.vert.txt b/progs/glsl/CH18-mandel.vert.txt new file mode 100644 index 0000000000..c4ca66405d --- /dev/null +++ b/progs/glsl/CH18-mandel.vert.txt @@ -0,0 +1,35 @@ +// +// Vertex shader for drawing the Mandelbrot set +// +// Authors: Dave Baldwin, Steve Koren, Randi Rost +// based on a shader by Michael Rivero +// +// Copyright (c) 2002-2005: 3Dlabs, Inc. +// +// See 3Dlabs-License.txt for license information +// + +uniform vec3 LightPosition; +uniform float SpecularContribution; +uniform float DiffuseContribution; +uniform float Shininess; + +varying float LightIntensity; +varying vec3 Position; + +void main() +{ + vec3 ecPosition = vec3(gl_ModelViewMatrix * gl_Vertex); + vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal); + vec3 lightVec = normalize(LightPosition - ecPosition); + vec3 reflectVec = reflect(-lightVec, tnorm); + vec3 viewVec = normalize(-ecPosition); + float spec = max(dot(reflectVec, viewVec), 0.0); + spec = pow(spec, Shininess); + LightIntensity = DiffuseContribution * + max(dot(lightVec, tnorm), 0.0) + + SpecularContribution * spec; + Position = vec3(gl_MultiTexCoord0 - 0.5) * 5.0; + gl_Position = ftransform(); + +}
\ No newline at end of file |