varying vec4 position;
varying vec3 varyingNormalDirection;
uniform mat4 v_inv;
void main ()
{
  vec3 specularReflection_1;
  vec3 totalLighting_2;
  float attenuation_3;
  vec3 lightDirection_4;
  vec3 tmpvar_5;
  tmpvar_5 = normalize(varyingNormalDirection);
  vec3 tmpvar_6;
  tmpvar_6 = normalize(((v_inv * vec4(0.0, 0.0, 0.0, 1.0)) - position).xyz);
  totalLighting_2 = vec3(0.04, 0.04, 0.04);
  vec3 tmpvar_7;
  tmpvar_7 = (vec4(0.0, 3.0, 0.0, 1.0) - position).xyz;
  float tmpvar_8;
  tmpvar_8 = dot (tmpvar_7, tmpvar_7);
  lightDirection_4 = (inversesqrt(tmpvar_8) * tmpvar_7);
  attenuation_3 = (2.0 * inversesqrt(tmpvar_8));
  vec3 tmpvar_9;
  tmpvar_9 = ((vec3(attenuation_3) * vec3(1.0, 0.8, 0.8)) * max (0.0, dot (tmpvar_5, lightDirection_4)));
  float tmpvar_10;
  tmpvar_10 = dot (tmpvar_5, lightDirection_4);
  if ((tmpvar_10 < 0.0)) {
    specularReflection_1 = vec3(0.0, 0.0, 0.0);
  } else {
    vec3 I_11;
    I_11 = -(lightDirection_4);
    specularReflection_1 = (vec3(attenuation_3) * pow (max (0.0, 
      dot ((I_11 - (2.0 * (
        dot (tmpvar_5, I_11)
       * tmpvar_5))), tmpvar_6)
    ), 5.0));
  };
  totalLighting_2 = ((vec3(0.04, 0.04, 0.04) + tmpvar_9) + specularReflection_1);
  vec4 tmpvar_12;
  tmpvar_12.w = 1.0;
  tmpvar_12.xyz = totalLighting_2;
  gl_FragColor = tmpvar_12;
}


// stats: 30 alu 0 tex 1 flow
// inputs: 2
//  #0: position (high float) 4x1 [-1]
//  #1: varyingNormalDirection (high float) 3x1 [-1]
// uniforms: 1 (total size: 0)
//  #0: v_inv (high float) 4x4 [-1]