#version 300 es
in vec4 _glesVertex;
uniform highp vec3 _WorldSpaceCameraPos;
uniform highp mat4 glstate_matrix_mvp;
uniform highp mat4 _World2Object;
uniform highp vec3 _TerrainTreeLightDirections[4];
out highp vec3 xlv_TEXCOORD2;
void main ()
{
  highp vec3 viewDir_1;
  highp vec3 tmpvar_2;
  highp vec4 tmpvar_3;
  tmpvar_3.w = 1.0;
  tmpvar_3.xyz = _WorldSpaceCameraPos;
  viewDir_1 = normalize(((_World2Object * tmpvar_3).xyz - _glesVertex.xyz));
  mediump float backContrib_4;
  highp float tmpvar_5;
  tmpvar_5 = clamp (dot (viewDir_1, -(_TerrainTreeLightDirections[0])), 0.0, 1.0);
  backContrib_4 = tmpvar_5;
  highp vec3 tmpvar_6;
  tmpvar_6.yz = tmpvar_2.yz;
  tmpvar_6.x = (backContrib_4 * 2.0);
  mediump float backContrib_7;
  highp float tmpvar_8;
  tmpvar_8 = clamp (dot (viewDir_1, -(_TerrainTreeLightDirections[1])), 0.0, 1.0);
  backContrib_7 = tmpvar_8;
  highp vec3 tmpvar_9;
  tmpvar_9.xz = tmpvar_6.xz;
  tmpvar_9.y = (backContrib_7 * 2.0);
  mediump float backContrib_10;
  highp float tmpvar_11;
  tmpvar_11 = clamp (dot (viewDir_1, -(_TerrainTreeLightDirections[2])), 0.0, 1.0);
  backContrib_10 = tmpvar_11;
  highp vec3 tmpvar_12;
  tmpvar_12.xy = tmpvar_9.xy;
  tmpvar_12.z = (backContrib_10 * 2.0);
  tmpvar_2 = tmpvar_12;
  gl_Position = (glstate_matrix_mvp * _glesVertex);
  xlv_TEXCOORD2 = tmpvar_12;
}


// stats: 17 alu 0 tex 0 flow
// inputs: 1
//  #0: _glesVertex (high float) 4x1 [-1]
// uniforms: 4 (total size: 0)
//  #0: _WorldSpaceCameraPos (high float) 3x1 [-1]
//  #1: glstate_matrix_mvp (high float) 4x4 [-1]
//  #2: _World2Object (high float) 4x4 [-1]
//  #3: _TerrainTreeLightDirections (high float) 3x1 [4]
