1#if __VERSION__ < 130
2#define TEXTURE2D texture2D
3#else
4#define TEXTURE2D texture
5#endif
6
7uniform float u_Time;
8uniform sampler2D u_Tex0;
9uniform sampler2D u_Tex1;
10uniform sampler2D u_Tex2;
11varying vec2 v_TexCoord;
12varying vec2 v_TexCoord2;
13
14uniform vec2 u_Resolution;
15uniform float u_float1;
16uniform float u_float2;
17uniform float u_float3;
18varying vec2 v_TexCoord3;
19varying vec2 v_TexCoord4;
20uniform float u_float4;
21
22float _OutlineAlpha = 1.0;
23float _OutlineGlow = 1.0;
24float outline_thickness = 0.3;
25vec4 _OutlineColor = vec4(1.0,1.0,1.0,1.0);
26
27void main()
28{
29 vec4 _MainTex = TEXTURE2D(u_Tex0, v_TexCoord);
30 vec2 destUv = vec2(0.01 * _MainTex.x, 0.01 * _MainTex.y);
31
32 float outDistortAmnt = (TEXTURE2D(u_Tex1, v_TexCoord4).r - 0.5) * outline_thickness;
33 destUv.x += outDistortAmnt;
34 destUv.y += outDistortAmnt;
35
36 float spriteLeft = TEXTURE2D(u_Tex0, v_TexCoord + vec2(destUv.x, 0)).a;
37 float spriteRight = TEXTURE2D(u_Tex0, v_TexCoord - vec2(destUv.x, 0)).a;
38 float spriteBottom = TEXTURE2D(u_Tex0, v_TexCoord + vec2(0, destUv.y)).a;
39 float spriteTop = TEXTURE2D(u_Tex0, v_TexCoord - vec2(0, destUv.y)).a;
40 float result = spriteLeft + spriteRight + spriteBottom + spriteTop;
41
42 float spriteTopLeft = TEXTURE2D(u_Tex0, v_TexCoord + vec2(destUv.x, destUv.y)).a;
43 float spriteTopRight = TEXTURE2D(u_Tex0, v_TexCoord + vec2(-destUv.x, destUv.y)).a;
44 float spriteBotLeft = TEXTURE2D(u_Tex0, v_TexCoord + vec2(destUv.x, -destUv.y)).a;
45 float spriteBotRight = TEXTURE2D(u_Tex0, v_TexCoord + vec2(-destUv.x, -destUv.y)).a;
46 result = result + spriteTopLeft + spriteTopRight + spriteBotLeft + spriteBotRight;
47
48 result = step(0.05, clamp(result,0.0,1.0));
49 vec4 tempOutColor = TEXTURE2D(u_Tex2, v_TexCoord4);
50 //tempOutColor *= _OutlineColor;
51 _OutlineColor = tempOutColor;
52
53 result *= (1.0 - _MainTex.a) * _OutlineAlpha;
54
55
56 vec4 outline = _OutlineColor;
57 //outline.rgb *= _OutlineGlow;
58 //outline.a = result;
59 gl_FragColor = mix(_MainTex, outline, result);
60}