| // |
| // 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(); |
| |
| } |