precision highp float;

varying vec2 texCoord;
varying vec2 bumptexCoord;
varying vec3 tmpNormal;

uniform sampler2D textureUnit0;


void main ()
{
    vec4 base = texture2D(textureUnit0, texCoord);
    vec4 bump = texture2D(textureUnit0, bumptexCoord);
    float bumpf = clamp((bump.r+bump.g+bump.b)*0.333,0.0,1.0);
    float bumpf2 = clamp((base.r+base.g+base.b)*0.333,0.0,1.0);
    vec3 altNormal = normalize(vec3(tmpNormal.x+(0.75*(bumpf - bumpf2)),tmpNormal.y+(0.75*(bumpf - bumpf2)),tmpNormal.z));
    vec3 tmpVec = -1.0*normalize(vec3(0.2,-0.1,1.0));
    float mydiffuse = max(dot(tmpVec,altNormal),0.0);
    float myspecular = pow(clamp(max(dot(reflect(tmpVec,altNormal),tmpVec),0.0),0.0,1.0),24.0);
    gl_FragColor = (base*mydiffuse*1.5+base*myspecular*3.0);
}