#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]