[VP objdiffuse]

uniform mat4 ViewMatrix;
uniform vec3 LightDir;

varying vec3 n;
varying vec3 l;

void main() {
	// gl_ModelViewMatrix - Model matrix of the object
	vec4 v = gl_ModelViewMatrix * gl_Vertex; // Wolrd-space Vertex position
	
	n = normalize(mat3(gl_ModelViewMatrix[0].xyz,gl_ModelViewMatrix[1].xyz,gl_ModelViewMatrix[2].xyz) * gl_Normal);
	l = -LightDir;
	l.y = -l.y;

	
	gl_Position = gl_ProjectionMatrix * ViewMatrix * v;
	gl_TexCoord[0] = gl_MultiTexCoord0;
}
[FP objdiffuse]
varying vec3 n;
varying vec3 l;

uniform sampler2D Texture;
uniform float SunlightPower;

void main() {
	
	vec3 nt = normalize(n);
	
	vec3 l2 = normalize(l);
	vec3 diffColor = vec3(texture2D(Texture,gl_TexCoord[0].xy));
	float diff = max(dot(nt,l2),0.0)+0.2;
	
	vec3 res = diff*diffColor*SunlightPower;
	
	gl_FragColor = vec4(res,1);
}