éœ
attribute vec4 pos;
attribute vec4 texcoord;
attribute vec4 normal;
attribute vec4 tangent;
attribute vec4 texcoord1;

uniform mat4 Alice_Matrix_M;
uniform mat4 Alice_Matrix_V;
uniform mat4 Alice_Matrix_P;

varying vec4 V_TexCoord;
varying vec4 V_Color;
varying vec4 V_OutlineColor;
varying vec4 V_ShadowColor;

void main()
{
    vec4 view_Pos = Alice_Matrix_P * Alice_Matrix_M * pos;
    V_TexCoord = texcoord;
    V_Color = tangent;
	V_OutlineColor = normal;
	V_ShadowColor = texcoord1;
	gl_Position = view_Pos;
}Ç
#ifdef GL_ES
precision mediump float; 
#endif
varying vec4 V_Color;
varying vec4 V_TexCoord;
varying vec4 V_OutlineColor;
varying vec4 V_ShadowColor;

uniform sampler2D U_MainTexture;

void main()
{
    vec4 textureColor = texture2D(U_MainTexture, V_TexCoord.xy);
	gl_FragColor=vec4(V_Color.rgb,textureColor.a);
	return;
	float fontAlpha=textureColor.a;
	float outlineAlpha=textureColor.r;
	float shadowAlpha=textureColor.g;
	vec4 fontColor=V_Color;
	vec4 outlineColor=V_OutlineColor;
	vec4 shadowColor=V_ShadowColor;
	if ((fontAlpha + outlineAlpha+shadowAlpha) > 0.0){
		vec4 color;
		if(outlineAlpha>0.0)
		{
			if(fontAlpha>0.0)
			{
				color = fontAlpha*fontColor +outlineAlpha*outlineColor;
			}
			else if(outlineAlpha>0.0)
			{
				color = outlineAlpha*outlineColor;
				if(shadowAlpha<0.2)
				{
					color=color+shadowAlpha * shadowColor;
				}
				else
				{
					color=color+(1.0-outlineAlpha)*shadowColor;
				}
			}
			else
			{
				color=shadowAlpha*shadowColor;
			}
		}
		else
		{
			if(fontAlpha>0.0)
			{
				color=fontAlpha*fontColor;
				if(shadowAlpha>0.0)
				{
					color=color+shadowAlpha*shadowColor;
				}
			}
			else
			{
				color = shadowAlpha*shadowColor;
			}
		}
		gl_FragColor = color;
    }
    else {
        gl_FragColor = vec4(0,0,0,0);
    }
}
 18d8c4f09b3911e79488fcaa14d464d5