Vertex.glsl 1.04 KB
Newer Older
Jan Möbius's avatar
Jan Möbius committed
1
2
3
varying vec4 diffuse,ambient;
varying vec3 normal,lightDir,halfVector;
       
Jan Möbius's avatar
 
Jan Möbius committed
4
void main()
Jan Möbius's avatar
Jan Möbius committed
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{       
      /* first transform the normal into eye space and 
      normalize the result */
      normal = normalize(gl_NormalMatrix * gl_Normal);
                
      /* now normalize the light's direction. Note that 
      according to the OpenGL specification, the light 
      is stored in eye space. Also since we're talking about 
      a directional light, the position field is actually direction */
      lightDir = normalize(vec3(gl_LightSource[0].position));
        
      /* Normalize the halfVector to pass it to the fragment shader */
      halfVector = normalize(gl_LightSource[0].halfVector.xyz);
                                        
      /* Compute the diffuse, ambient and globalAmbient terms */
      diffuse = gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse;
      ambient = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;
      ambient += gl_LightModel.ambient * gl_FrontMaterial.ambient;
        
      gl_Position = ftransform();
}