uniform sampler2D _TranslucencyMap; uniform vec3 _TranslucencyColor; uniform vec4 _TerrainTreeLightColors[4]; uniform vec4 _SpecColor; uniform sampler2D _MainTex; uniform float _Cutoff; uniform sampler2D _BumpSpecMap; void main () { vec2 tmpvar_1; tmpvar_1 = gl_TexCoord[0].xy; vec3 tmpvar_2; vec3 tmpvar_3; tmpvar_2 = gl_TexCoord[3].xyz; tmpvar_3 = gl_TexCoord[4].xyz; vec4 c_4; vec3 backContribs_5; vec3 light_6; float specular_7; vec4 tmpvar_8; tmpvar_8 = texture2D (_MainTex, tmpvar_1); float x_9; x_9 = (tmpvar_8.w - _Cutoff); if ((x_9 < 0.0)) { discard; }; vec3 tmpvar_10; tmpvar_10 = (tmpvar_8.xyz * gl_TexCoord[1].xyz); specular_7 = (texture2D (_BumpSpecMap, tmpvar_1).x * 128.0); vec4 tmpvar_11; tmpvar_11 = texture2D (_TranslucencyMap, tmpvar_1); light_6 = (gl_LightModel.ambient.xyz * tmpvar_10); backContribs_5 = (gl_TexCoord[2].xyz * tmpvar_11.z); float tmpvar_12; tmpvar_12 = (pow (tmpvar_3.x, specular_7) * tmpvar_11.w); light_6 = (light_6 + (((tmpvar_10 * ((backContribs_5.x * _TranslucencyColor) + tmpvar_2.x)) + (_SpecColor.xyz * tmpvar_12)) * _TerrainTreeLightColors[0].xyz)); float tmpvar_13; tmpvar_13 = (pow (tmpvar_3.y, specular_7) * tmpvar_11.w); light_6 = (light_6 + (((tmpvar_10 * ((backContribs_5.y * _TranslucencyColor) + tmpvar_2.y)) + (_SpecColor.xyz * tmpvar_13)) * _TerrainTreeLightColors[1].xyz)); float tmpvar_14; tmpvar_14 = (pow (tmpvar_3.z, specular_7) * tmpvar_11.w); light_6 = (light_6 + (((tmpvar_10 * ((backContribs_5.z * _TranslucencyColor) + tmpvar_2.z)) + (_SpecColor.xyz * tmpvar_14)) * _TerrainTreeLightColors[2].xyz)); c_4.xyz = (light_6 * 2.0); c_4.w = 1.0; gl_FragData[0] = c_4; }