FSH	R{ö     u_params     	s_texCube      s_texCubeIrr      ²  varying vec3 v_normal;
varying vec3 v_view;
uniform vec4 u_params[12];
uniform samplerCube s_texCube;
uniform samplerCube s_texCubeIrr;
void main ()
{
  mat4 mtx_1;
  vec3 refl_2;
  vec3 tmpvar_3;
  tmpvar_3 = normalize(u_params[10].xyz);
  vec3 tmpvar_4;
  tmpvar_4 = u_params[11].xyz;
  vec3 tmpvar_5;
  tmpvar_5 = normalize(v_normal);
  vec3 tmpvar_6;
  tmpvar_6 = normalize(v_view);
  vec3 tmpvar_7;
  tmpvar_7 = normalize((tmpvar_6 + tmpvar_3));
  float tmpvar_8;
  tmpvar_8 = clamp (dot (tmpvar_5, tmpvar_6), 0.0, 1.0);
  float tmpvar_9;
  tmpvar_9 = clamp (dot (tmpvar_5, tmpvar_3), 0.0, 1.0);
  float tmpvar_10;
  tmpvar_10 = clamp (dot (tmpvar_5, tmpvar_7), 0.0, 1.0);
  float tmpvar_11;
  tmpvar_11 = clamp (dot (tmpvar_7, tmpvar_6), 0.0, 1.0);
  vec3 tmpvar_12;
  tmpvar_12 = u_params[8].xyz;
  float tmpvar_13;
  tmpvar_13 = u_params[4].y;
  float tmpvar_14;
  tmpvar_14 = u_params[4].x;
  if ((0.0 == u_params[5].x)) {
    refl_2 = mix (vec3(0.04, 0.04, 0.04), tmpvar_12, tmpvar_13);
  } else {
    refl_2 = (u_params[9].xyz * vec3(tmpvar_13));
  };
  vec3 tmpvar_15;
  tmpvar_15 = (tmpvar_12 * (1.0 - tmpvar_13));
  vec3 tmpvar_16;
  tmpvar_16 = (refl_2 + ((
    (1.0 - refl_2)
   * 
    pow ((1.0 - tmpvar_11), 5.0)
  ) * tmpvar_14));
  vec3 tmpvar_17;
  tmpvar_17 = (refl_2 + ((
    (1.0 - refl_2)
   * 
    pow ((1.0 - tmpvar_8), 5.0)
  ) * tmpvar_14));
  float tmpvar_18;
  tmpvar_18 = exp2(((10.0 * tmpvar_14) + 2.0));
  vec3 tmpvar_19;
  tmpvar_19 = (((u_params[6].x * 
    ((tmpvar_15 * (1.0 - tmpvar_16)) * tmpvar_9)
  ) + (u_params[6].y * 
    (tmpvar_16 * ((pow (tmpvar_10, tmpvar_18) * tmpvar_9) * ((tmpvar_18 + 8.0) * 0.125)))
  )) * tmpvar_4);
  float tmpvar_20;
  tmpvar_20 = (1.0 + (5.0 * (1.0 - tmpvar_14)));
  mtx_1[0] = u_params[0];
  mtx_1[1] = u_params[1];
  mtx_1[2] = u_params[2];
  mtx_1[3] = u_params[3];
  vec4 tmpvar_21;
  tmpvar_21.w = 0.0;
  tmpvar_21.xyz = (((2.0 * tmpvar_8) * tmpvar_5) - tmpvar_6);
  vec3 tmpvar_22;
  tmpvar_22 = normalize((mtx_1 * tmpvar_21).xyz);
  vec4 tmpvar_23;
  tmpvar_23.w = 0.0;
  tmpvar_23.xyz = tmpvar_5;
  vec3 tmpvar_24;
  tmpvar_24 = normalize((mtx_1 * tmpvar_23).xyz);
  vec3 _v_25;
  _v_25 = tmpvar_22;
  float tmpvar_26;
  tmpvar_26 = abs(tmpvar_22.x);
  float tmpvar_27;
  tmpvar_27 = abs(tmpvar_22.y);
  float tmpvar_28;
  tmpvar_28 = abs(tmpvar_22.z);
  float tmpvar_29;
  tmpvar_29 = max (max (tmpvar_26, tmpvar_27), tmpvar_28);
  float tmpvar_30;
  tmpvar_30 = (1.0 - (exp2(tmpvar_20) / 256.0));
  if ((tmpvar_26 != tmpvar_29)) {
    _v_25.x = (tmpvar_22.x * tmpvar_30);
  };
  if ((tmpvar_27 != tmpvar_29)) {
    _v_25.y = (tmpvar_22.y * tmpvar_30);
  };
  if ((tmpvar_28 != tmpvar_29)) {
    _v_25.z = (tmpvar_22.z * tmpvar_30);
  };
  vec3 tmpvar_31;
  tmpvar_31 = max (vec3(0.0, 0.0, 0.0), ((
    (tmpvar_19 + (((tmpvar_15 * 
      pow (abs(textureCube (s_texCubeIrr, tmpvar_24).xyz), vec3(2.2, 2.2, 2.2))
    ) * u_params[6].z) + ((tmpvar_17 * 
      pow (abs(textureCubeLod (s_texCube, _v_25, tmpvar_20).xyz), vec3(2.2, 2.2, 2.2))
    ) * u_params[6].w)))
   * 
    exp2(u_params[4].z)
  ) - 0.004));
  gl_FragColor.xyz = ((tmpvar_31 * (
    (6.2 * tmpvar_31)
   + 0.5)) / ((tmpvar_31 * 
    ((6.2 * tmpvar_31) + 1.7)
  ) + 0.06));
  gl_FragColor.w = 1.0;
}

 