
	varying vec3 normal,halfVector;
	uniform float FURsize;

	uniform sampler2D Texture0,Texture1,Texture2,Texture3;

	
	void main()
	{


vec4 color=texture2D(Texture0 ,gl_TexCoord[0].st).rgba; ;





		vec3 n,halfV;
		float NdotL,NdotHV;
		n = normalize(normal);

			halfV = normalize(halfVector);
			NdotHV = max(dot(n,halfV),0.0);




color.rgb += pow(NdotHV, 10.0)*0.2;


color.rgb *= 0.9+FURsize*0.1;
color.rgb *= texture2D(Texture1 ,gl_TexCoord[1].st).rgb;

color.rgb += (0.8-n.b)* FURsize*texture2D(Texture2 ,gl_TexCoord[0].st).g*0.5;

color.rgb  += texture2D(Texture3 ,gl_TexCoord[2].st).rgb*texture2D(Texture2 ,gl_TexCoord[0].st).r;
color.a    = texture2D(Texture2 , gl_TexCoord[0].st).b/FURsize;

gl_FragColor = color;
	}