Apply what you have learned. :)
However, I did not set the texture coordinates based on the light intensity, but determined the color value of the current Pixel based on the light intensity.
The shader code is as follows:
Vertexshader
//-----------------------------------------------------------------------------
// Vertex shader
//-----------------------------------------------------------------------------
Uniform vec3 lightposition;
Varying float diffuse;
Void main (void ){
Vec3 ecposition = vec3 (gl_modelviewmatrix * gl_vertex );
Vec3 tnorm = normalize (gl_normalmatrix * gl_normal );
Vec3 lightvec = normalize (lightposition-ecposition );
Diffuse = max (dot (lightvec, tnorm), 0.0 );
Gl_position = ftransform ();
}
Fragmentshader
//-----------------------------------------------------------------------------
// Fragment shader
//-----------------------------------------------------------------------------
Varying float diffuse;
Void main (void ){
Vec4 color;
If (diffuse & gt; 0.66)
Color = vec4 (0.75, 0.75, 0.75, 1 );
Else if (diffuse & gt; 0.33)
Color = vec4 (0.63, 0.63, 0.63, 1 );
Else
Color = vec4 (0.50, 0.50, 0.50, 1 );
Gl_fragcolor = color;
}
The next step is alignment.