attribute highp vec4 inVertex;
attribute highp vec3 inNormal;
attribute highp vec2 inTexCoord;

uniform highp mat4   MVPMatrix;
uniform highp vec3   LightDirection;
uniform highp float  MaterialBias;
uniform highp float  MaterialScale;

varying lowp    vec3 DiffuseLight;
varying lowp    vec3 SpecularLight;
varying mediump vec2 TexCoord;

void main()
{
	gl_Position = MVPMatrix * inVertex;
	
	DiffuseLight = vec3(max(dot(inNormal, LightDirection), 0.0));
	SpecularLight = vec3(max((DiffuseLight.x - MaterialBias) * MaterialScale, 0.0));
	
	TexCoord = inTexCoord;
}
