#version 300 es
out mediump vec4 _fragData;
void xll_clip(float x) {
  if ( x<0.0 ) discard;
}
struct v2f {
    highp vec4 pos;
    highp vec2 uv;
    highp vec3 color;
    highp vec3 backContrib;
    highp vec3 nl;
    highp vec3 nh;
};
uniform lowp vec4 UNITY_LIGHTMODEL_AMBIENT;
uniform sampler2D _BumpSpecMap;
uniform lowp float _Cutoff;
uniform sampler2D _MainTex;
uniform lowp vec4 _SpecColor;
uniform highp vec4 _TerrainTreeLightColors[4];
uniform lowp vec3 _TranslucencyColor;
uniform sampler2D _TranslucencyMap;
lowp vec4 xlat_main( in v2f i );
lowp vec4 xlat_main( in v2f i ) {
    lowp vec4 col;
    lowp vec3 albedo;
    mediump float specular;
    lowp vec4 trngls;
    mediump float gloss;
    mediump vec3 light;
    mediump vec3 backContribs;
    highp int j = 0;
    mediump vec3 lightColor;
    mediump vec3 translucencyColor;
    mediump float nl;
    mediump float nh;
    mediump float spec;
    lowp vec4 c;
    col = texture( _MainTex, i.uv);
    xll_clip((col.w - _Cutoff));
    #line 35
    albedo = (col.xyz * i.color);
    specular = (texture( _BumpSpecMap, i.uv).x * 128.000);
    #line 39
    trngls = texture( _TranslucencyMap, i.uv);
    gloss = trngls.w;
    light = (vec3( UNITY_LIGHTMODEL_AMBIENT) * albedo);
    #line 44
    backContribs = (i.backContrib * trngls.z);
    for ( ; (j < 3); (j++)) {
        #line 48
        lightColor = _TerrainTreeLightColors[j].xyz;
        translucencyColor = (backContribs[j] * _TranslucencyColor);
        nl = i.nl[j];
        #line 52
        nh = i.nh[j];
        spec = (pow( nh, specular) * gloss);
        light += (((albedo * (translucencyColor + nl)) + (_SpecColor.xyz * spec)) * lightColor);
    }
    #line 58
    c.xyz = (light * 2.00000);
    c.w = 1.00000;
    return c;
}
in highp vec4 xlv_SV_POSITION;
in highp vec2 xlv_TEXCOORD0;
in highp vec3 xlv_TEXCOORD1;
in highp vec3 xlv_TEXCOORD2;
in highp vec3 xlv_TEXCOORD3;
in highp vec3 xlv_TEXCOORD4;
void main() {
    lowp vec4 xl_retval;
    v2f xlt_i;
    xlt_i.pos = vec4( xlv_SV_POSITION);
    xlt_i.uv = vec2( xlv_TEXCOORD0);
    xlt_i.color = vec3( xlv_TEXCOORD1);
    xlt_i.backContrib = vec3( xlv_TEXCOORD2);
    xlt_i.nl = vec3( xlv_TEXCOORD3);
    xlt_i.nh = vec3( xlv_TEXCOORD4);
    xl_retval = xlat_main( xlt_i);
    _fragData = vec4( xl_retval);
}
