Client Upload Part 1

RD Core / Commit #4

Commit Client Upload Part 1

Alex Alex committed 19/10/2026 00:04 main Patch
4,149 files +18,091 -7
A RD_Client/data/shaders/outfit_aura_fragment.frag +60-0 View file
@@ -0,0 +1,60 @@
1+#if __VERSION__ < 130
2+#define TEXTURE2D texture2D
3+#else
4+#define TEXTURE2D texture
5+#endif
6+
7+uniform float u_Time;
8+uniform sampler2D u_Tex0;
9+uniform sampler2D u_Tex1;
10+uniform sampler2D u_Tex2;
11+varying vec2 v_TexCoord;
12+varying vec2 v_TexCoord2;
13+
14+uniform vec2 u_Resolution;
15+uniform float u_float1;
16+uniform float u_float2;
17+uniform float u_float3;
18+varying vec2 v_TexCoord3;
19+varying vec2 v_TexCoord4;
20+uniform float u_float4;
21+
22+float _OutlineAlpha = 1.0;
23+float _OutlineGlow = 1.0;
24+float outline_thickness = 0.3;
25+vec4 _OutlineColor = vec4(1.0,1.0,1.0,1.0);
26+
27+void 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+}
A RD_Client/data/shaders/outfit_aura_vertex.frag +75-0 View file
@@ -0,0 +1,75 @@
1+attribute vec2 a_Vertex;
2+attribute vec2 a_TexCoord;
3+uniform mat3 u_TextureMatrix;
4+varying vec2 v_TexCoord;
5+varying vec2 v_TexCoord2;
6+uniform mat3 u_TransformMatrix;
7+uniform mat3 u_ProjectionMatrix;
8+varying vec2 v_TexCoord3;
9+varying vec2 v_TexCoord4;
10+uniform vec2 u_Offset;
11+uniform vec2 u_Center;
12+uniform float u_Time;
13+vec2 direction = vec2(0.5,1.0);
14+float speed = 100.0;
15+
16+vec2 effectTextureSize = vec2(256.0, 256.0);
17+void main()
18+{
19+ vec2 vertex = a_Vertex;
20+ if(vertex.x < u_Center.x) {
21+ vertex.x = effectTextureSize.x / 10.0;
22+ }
23+ if(vertex.x > u_Center.x) {
24+ vertex.x = effectTextureSize.x - effectTextureSize.x / 10.0;
25+ }
26+ if(vertex.y < u_Center.y) {
27+ vertex.y = effectTextureSize.y / 10.0;
28+ }
29+ if(vertex.y > u_Center.y) {
30+ vertex.y = effectTextureSize.y - effectTextureSize.y / 10.0;
31+ }
32+ v_TexCoord3.x = ((vertex.x + direction.x * u_Time * speed) / effectTextureSize.x);
33+ v_TexCoord3.y = ((vertex.y + direction.y * u_Time * (speed*6.0055)) / effectTextureSize.y);
34+
35+ effectTextureSize = vec2(256.0, 256.0);
36+ vertex = a_Vertex;
37+ if(vertex.x < u_Center.x) {
38+ vertex.x = effectTextureSize.x / 10.0;
39+ }
40+ if(vertex.x > u_Center.x) {
41+ vertex.x = effectTextureSize.x - effectTextureSize.x / 10.0;
42+ }
43+ if(vertex.y < u_Center.y) {
44+ vertex.y = effectTextureSize.y / 10.0;
45+ }
46+ if(vertex.y > u_Center.y) {
47+ vertex.y = effectTextureSize.y - effectTextureSize.y / 10.0;
48+ }
49+ v_TexCoord4.x = ((vertex.x + direction.x * u_Time * speed) / effectTextureSize.x);
50+ v_TexCoord4.y = ((vertex.y + direction.y * u_Time * (speed*1.75)) / effectTextureSize.y);
51+
52+ vertex = a_Vertex;
53+ vec2 text = a_TexCoord;
54+ vec2 text2 = a_TexCoord;
55+ if(a_Vertex.x < u_Center.x) {
56+ vertex.x -= 5.0;
57+ text.x -= 3.0;
58+ }
59+ if(a_Vertex.x > u_Center.x) {
60+ vertex.x += 5.0;
61+ text.x += 3.0;
62+ }
63+ if(a_Vertex.y < u_Center.y) {
64+ vertex.y -= 5.0;
65+ text.y -= 3.0;
66+ }
67+ if(a_Vertex.y > u_Center.y) {
68+ vertex.y += 5.0;
69+ text.y += 3.0;
70+ }
71+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
72+ v_TexCoord = (u_TextureMatrix * vec3(text,1.0)).xy;
73+ v_TexCoord2 = (u_TextureMatrix * vec3(text + u_Offset,1.0)).xy;
74+}
75+
A RD_Client/data/shaders/outfit_blink.frag +10-0 View file
@@ -0,0 +1,10 @@
1+uniform float u_Time;
2+uniform sampler2D u_Tex0;
3+varying vec2 v_TexCoord;
4+
5+void main()
6+{
7+ vec4 col = texture2D(u_Tex0, v_TexCoord);
8+ float fade = abs(sin(u_Time));
9+ gl_FragColor = mix(vec4(0.0), col, fade);
10+}
A RD_Client/data/shaders/outfit_blood_fragment.frag +16-0 View file
@@ -0,0 +1,16 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_TexCoord3;
5+uniform sampler2D u_Tex0;
6+uniform sampler2D u_Tex1;
7+void main()
8+{
9+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
10+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
11+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
12+ if(texcolor.a > 0.9) {
13+ gl_FragColor *= effectColor;
14+ }
15+ if(gl_FragColor.a < 0.01) discard;
16+}
A RD_Client/data/shaders/outfit_blood_vertex.frag +34-0 View file
@@ -0,0 +1,34 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Center;
11+uniform float u_Time;
12+
13+vec2 effectTextureSize = vec2(920.0, 518.0);
14+vec2 direction = vec2(1.0,1.0);
15+float speed = 7.0;
16+float angle = 180.0;
17+
18+vec2 rotate(vec2 v, float a) {
19+ float s = sin(a);
20+ float c = cos(a);
21+ mat2 m = mat2(c, -s, s, c);
22+ return m * v;
23+}
24+
25+void main()
26+{
27+ vec2 offset = direction * speed * u_Time;
28+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1, 1);
29+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
30+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
31+
32+ v_TexCoord3 = ((a_TexCoord + rotate(direction, (angle / 180.0) * 3.14) * u_Time * speed) / effectTextureSize);
33+}
34+
A RD_Client/data/shaders/outfit_blue_energy_fragment.frag +28-0 View file
@@ -0,0 +1,28 @@
1+uniform float u_Depth;
2+uniform mat4 u_Color;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+uniform sampler2D u_Tex0;
7+uniform sampler2D u_Tex1;
8+uniform float u_Time;
9+
10+void main()
11+{
12+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
13+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
14+
15+ if(texcolor.r > 0.9) {
16+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
17+ } else if(texcolor.g > 0.9) {
18+ gl_FragColor *= u_Color[2];
19+ } else if(texcolor.b > 0.9) {
20+ gl_FragColor *= u_Color[3];
21+ }
22+
23+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
24+ vec4 c = vec4(effectColor.rgb, gl_FragColor.a);
25+ c.rgb *= vec3(0.0, 1.0, 1.2);
26+ gl_FragColor.rgb = mix(gl_FragColor.rgb, c.rgb, c.rgb);
27+ if(gl_FragColor.a < 0.01) discard;
28+}
A RD_Client/data/shaders/outfit_blue_energy_vertex.frag +26-0 View file
@@ -0,0 +1,26 @@
1+attribute vec2 a_TexCoord;
2+attribute vec2 a_Vertex;
3+uniform mat3 u_TextureMatrix;
4+varying vec2 v_TexCoord;
5+varying vec2 v_TexCoord2;
6+varying vec2 v_TexCoord3;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform float u_Depth;
11+uniform float u_Time;
12+uniform float u_SpriteScale;
13+
14+vec2 effectTextureSize = vec2(64.0, 64.0);
15+vec2 direction = vec2(1.0,1.0);
16+float speed = 10.0;
17+
18+void main()
19+
20+{
21+ vec2 offset = direction * speed * u_Time;
22+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, u_Depth / 16384.0, 1.0);
23+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
24+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
25+ v_TexCoord3 = ((a_TexCoord + offset) / effectTextureSize);
26+}
A RD_Client/data/shaders/outfit_brazil_fragment.frag +16-0 View file
@@ -0,0 +1,16 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_TexCoord3;
5+uniform sampler2D u_Tex0;
6+uniform sampler2D u_Tex1;
7+void main()
8+{
9+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
10+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
11+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
12+ if(texcolor.a > 0.9) {
13+ gl_FragColor *= effectColor;
14+ }
15+ if(gl_FragColor.a < 0.01) discard;
16+}
A RD_Client/data/shaders/outfit_brazil_vertex.frag +40-0 View file
@@ -0,0 +1,40 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform float u_Time;
11+uniform vec2 u_Center;
12+
13+vec2 effectTextureSize = vec2(320.0, 200.0);
14+vec2 direction = vec2(1.0,1.0);
15+float speed = 10.0;
16+
17+void main()
18+{
19+ vec2 offset = direction * speed * u_Time;
20+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
21+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
22+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
23+
24+ vec2 vertex = a_Vertex;
25+ if(vertex.x < u_Center.x) {
26+ vertex.x = effectTextureSize.x / 10.0;
27+ }
28+ if(vertex.x > u_Center.x) {
29+ vertex.x = effectTextureSize.x - effectTextureSize.x / 10.0;
30+ }
31+ if(vertex.y < u_Center.y) {
32+ vertex.y = effectTextureSize.y / 10.0;
33+ }
34+ if(vertex.y > u_Center.y) {
35+ vertex.y = effectTextureSize.y - effectTextureSize.y / 10.0;
36+ }
37+
38+ v_TexCoord3 = ((vertex) / effectTextureSize);
39+}
40+
A RD_Client/data/shaders/outfit_bvoltage_fragment.frag +16-0 View file
@@ -0,0 +1,16 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_TexCoord3;
5+uniform sampler2D u_Tex0;
6+uniform sampler2D u_Tex1;
7+void main()
8+{
9+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
10+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
11+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
12+ if(texcolor.a > 0.9) {
13+ gl_FragColor *= effectColor;
14+ }
15+ if(gl_FragColor.a < 0.01) discard;
16+}
A RD_Client/data/shaders/outfit_bvoltage_vertex.frag +34-0 View file
@@ -0,0 +1,34 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Center;
11+uniform float u_Time;
12+
13+vec2 effectTextureSize = vec2(300.0, 150.0);
14+vec2 direction = vec2(1.0,0.2);
15+float speed = 25.0;
16+float angle = 30.0;
17+
18+vec2 rotate(vec2 v, float a) {
19+ float s = sin(a);
20+ float c = cos(a);
21+ mat2 m = mat2(c, -s, s, c);
22+ return m * v;
23+}
24+
25+void main()
26+{
27+ vec2 offset = direction * speed * u_Time;
28+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
29+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
30+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
31+
32+ v_TexCoord3 = ((a_TexCoord + rotate(direction, (angle / 180.0) * 3.14) * u_Time * speed) / effectTextureSize);
33+}
34+
A RD_Client/data/shaders/outfit_camouflage_fragment.frag +16-0 View file
@@ -0,0 +1,16 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_TexCoord3;
5+uniform sampler2D u_Tex0;
6+uniform sampler2D u_Tex1;
7+void main()
8+{
9+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
10+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
11+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
12+ if(texcolor.a > 0.9) {
13+ gl_FragColor *= effectColor;
14+ }
15+ if(gl_FragColor.a < 0.01) discard;
16+}
A RD_Client/data/shaders/outfit_camouflage_vertex.frag +34-0 View file
@@ -0,0 +1,34 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Center;
11+uniform float u_Time;
12+
13+vec2 effectTextureSize = vec2(512.0, 384.0);
14+vec2 direction = vec2(1.0,1.0);
15+float speed = 4.0;
16+float angle = 1.0;
17+
18+vec2 rotate(vec2 v, float a) {
19+ float s = sin(a);
20+ float c = cos(a);
21+ mat2 m = mat2(c, -s, s, c);
22+ return m * v;
23+}
24+
25+void main()
26+{
27+ vec2 offset = direction * speed * u_Time;
28+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1, 1);
29+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
30+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
31+
32+ v_TexCoord3 = ((a_TexCoord + rotate(direction, (angle / 180.0) * 3.14) * u_Time * speed) / effectTextureSize);
33+}
34+
A RD_Client/data/shaders/outfit_circle2_fragment.frag +38-0 View file
@@ -0,0 +1,38 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_Position;
5+uniform sampler2D u_Tex0;
6+uniform float u_Time;
7+
8+// CONFIG
9+float speed = 6.0;
10+float height = 2.0;
11+float radius = 5.0;
12+// CONFIG END
13+
14+vec2 rotate(vec2 v, float a) {
15+ float s = sin(a);
16+ float c = cos(a);
17+ mat2 m = mat2(c, -s, s, c);
18+ return m * v;
19+}
20+
21+void main()
22+{
23+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
24+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
25+ if(texcolor.r > 0.9) {
26+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
27+ } else if(texcolor.g > 0.9) {
28+ gl_FragColor *= u_Color[2];
29+ } else if(texcolor.b > 0.9) {
30+ gl_FragColor *= u_Color[3];
31+ }
32+
33+
34+ if(texcolor.a > 0.9) {
35+ gl_FragColor.xyz *= max(1.0, height / sqrt(abs(abs(sqrt(v_Position.x * v_Position.x + v_Position.y * v_Position.y) / 8.0) - abs(mod(u_Time * speed, radius * 2.0) - radius))));
36+ }
37+ if(gl_FragColor.a < 0.01) discard;
38+}
A RD_Client/data/shaders/outfit_circle2_vertex.frag +20-0 View file
@@ -0,0 +1,20 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_Position;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Resolution;
11+uniform vec2 u_Center;
12+
13+void main()
14+{
15+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
16+ v_Position = a_Vertex.xy - u_Center;
17+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
18+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
19+}
20+
A RD_Client/data/shaders/outfit_circle3_fragment.frag +38-0 View file
@@ -0,0 +1,38 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_Position;
5+uniform sampler2D u_Tex0;
6+uniform float u_Time;
7+
8+// CONFIG
9+float speed = 6.0;
10+float height = 2.0;
11+float radius = 5.0;
12+// CONFIG END
13+
14+vec2 rotate(vec2 v, float a) {
15+ float s = sin(a);
16+ float c = cos(a);
17+ mat2 m = mat2(c, -s, s, c);
18+ return m * v;
19+}
20+
21+void main()
22+{
23+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
24+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
25+ if(texcolor.r > 0.9) {
26+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
27+ } else if(texcolor.g > 0.9) {
28+ gl_FragColor *= u_Color[2];
29+ } else if(texcolor.b > 0.9) {
30+ gl_FragColor *= u_Color[3];
31+ }
32+
33+
34+ if(texcolor.a > 0.9) {
35+ gl_FragColor.xyz *= max(1.0, height / sqrt(abs(abs(sqrt(v_Position.x * v_Position.x + v_Position.y * v_Position.y) / 8.0) - abs(mod(u_Time * speed, radius * 2.0) - radius))));
36+ }
37+ if(gl_FragColor.a < 0.01) discard;
38+}
A RD_Client/data/shaders/outfit_circle3_vertex.frag +20-0 View file
@@ -0,0 +1,20 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_Position;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Resolution;
11+uniform vec2 u_Center;
12+
13+void main()
14+{
15+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
16+ v_Position = a_Vertex.xy - u_Center;
17+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
18+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
19+}
20+
A RD_Client/data/shaders/outfit_circle4_fragment.frag +38-0 View file
@@ -0,0 +1,38 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_Position;
5+uniform sampler2D u_Tex0;
6+uniform float u_Time;
7+
8+// CONFIG
9+float speed = 10.0;
10+float height = 3.0;
11+float radius = 5.0;
12+// CONFIG END
13+
14+vec2 rotate(vec2 v, float a) {
15+ float s = sin(a);
16+ float c = cos(a);
17+ mat2 m = mat2(c, -s, s, c);
18+ return m * v;
19+}
20+
21+void main()
22+{
23+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
24+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
25+ if(texcolor.r > 0.9) {
26+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
27+ } else if(texcolor.g > 0.9) {
28+ gl_FragColor *= u_Color[2];
29+ } else if(texcolor.b > 0.9) {
30+ gl_FragColor *= u_Color[3];
31+ }
32+
33+
34+ if(texcolor.a > 0.9) {
35+ gl_FragColor.xyz *= max(1.0, height / sqrt(abs(abs(sqrt(v_Position.x * v_Position.x + v_Position.y * v_Position.y) / 8.0) - abs(mod(u_Time * speed, radius * 2.0) - radius))));
36+ }
37+ if(gl_FragColor.a < 0.01) discard;
38+}
A RD_Client/data/shaders/outfit_circle4_vertex.frag +20-0 View file
@@ -0,0 +1,20 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_Position;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Resolution;
11+uniform vec2 u_Center;
12+
13+void main()
14+{
15+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
16+ v_Position = a_Vertex.xy - u_Center;
17+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
18+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
19+}
20+
A RD_Client/data/shaders/outfit_circle_fragment.frag +37-0 View file
@@ -0,0 +1,37 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_Position;
5+uniform sampler2D u_Tex0;
6+uniform float u_Time;
7+
8+// CONFIG
9+float speed = 2.0;
10+float height = 2.0;
11+float radius = 5.0;
12+// CONFIG END
13+
14+vec2 rotate(vec2 v, float a) {
15+ float s = sin(a);
16+ float c = cos(a);
17+ mat2 m = mat2(c, -s, s, c);
18+ return m * v;
19+}
20+
21+void main()
22+{
23+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
24+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
25+ if(texcolor.r > 0.9) {
26+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
27+ } else if(texcolor.g > 0.9) {
28+ gl_FragColor *= u_Color[2];
29+ } else if(texcolor.b > 0.9) {
30+ gl_FragColor *= u_Color[3];
31+ }
32+
33+ if(texcolor.a > 0.9) {
34+ gl_FragColor.xyz *= max(1.0, height / sqrt(abs(abs(sqrt(v_Position.x * v_Position.x + v_Position.y * v_Position.y) / 8.0) - abs(mod(u_Time * speed, radius * 2.0) - radius))));
35+ }
36+ if(gl_FragColor.a < 0.01) discard;
37+}
A RD_Client/data/shaders/outfit_circle_vertex.frag +20-0 View file
@@ -0,0 +1,20 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_Position;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform vec2 u_Resolution;
11+uniform vec2 u_Center;
12+
13+void main()
14+{
15+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
16+ v_Position = a_Vertex.xy - u_Center;
17+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
18+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
19+}
20+
A RD_Client/data/shaders/outfit_cosmos_fragment.frag +16-0 View file
@@ -0,0 +1,16 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_TexCoord3;
5+uniform sampler2D u_Tex0;
6+uniform sampler2D u_Tex1;
7+void main()
8+{
9+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
10+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
11+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
12+ if(texcolor.a > 0.9) {
13+ gl_FragColor *= effectColor * 2.0;
14+ }
15+ if(gl_FragColor.a < 0.01) discard;
16+}
A RD_Client/data/shaders/outfit_cosmos_vertex.frag +24-0 View file
@@ -0,0 +1,24 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+attribute vec2 a_Vertex;
7+uniform mat3 u_TransformMatrix;
8+uniform mat3 u_ProjectionMatrix;
9+uniform vec2 u_Offset;
10+uniform float u_Time;
11+
12+vec2 effectTextureSize = vec2(720.0, 480.0);
13+vec2 direction = vec2(1,-0.8);
14+float speed = 15.0;
15+
16+void main()
17+{
18+ vec2 offset = direction * speed * u_Time;
19+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
20+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
21+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
22+ v_TexCoord3 = ((a_TexCoord + offset) / effectTextureSize);
23+}
24+
A RD_Client/data/shaders/outfit_default_fragment.frag +17-0 View file
@@ -0,0 +1,17 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+uniform sampler2D u_Tex0;
5+void main()
6+{
7+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
8+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
9+ if(texcolor.r > 0.9) {
10+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
11+ } else if(texcolor.g > 0.9) {
12+ gl_FragColor *= u_Color[2];
13+ } else if(texcolor.b > 0.9) {
14+ gl_FragColor *= u_Color[3];
15+ }
16+ if(gl_FragColor.a < 0.01) discard;
17+}
A RD_Client/data/shaders/outfit_default_vertex.frag +48-0 View file
@@ -0,0 +1,48 @@
1+attribute vec2 a_TexCoord;
2+uniform mat3 u_TextureMatrix;
3+varying vec2 v_TexCoord;
4+varying vec2 v_TexCoord2;
5+varying vec2 v_TexCoord3;
6+varying vec2 v_Position;
7+attribute vec2 a_Vertex;
8+uniform mat3 u_TransformMatrix;
9+uniform mat3 u_ProjectionMatrix;
10+uniform vec2 u_WalkOffset;
11+uniform vec2 u_Resolution;
12+uniform vec2 u_Center;
13+uniform float u_Time;
14+
15+void main()
16+{
17+ vec2 vertex = a_Vertex;
18+ vec2 text = a_TexCoord;
19+ vec2 text2 = a_TexCoord;
20+
21+ float outlineWidth = 1.0;
22+
23+ if(vertex.x < u_Center.x) {
24+ vertex.x -= outlineWidth;
25+ text.x -= outlineWidth;
26+ }
27+ if(vertex.x > u_Center.x) {
28+ vertex.x += outlineWidth;
29+ text.x += outlineWidth;
30+ }
31+ if(vertex.y < u_Center.y) {
32+ vertex.y -= outlineWidth;
33+ text.y -= outlineWidth;
34+ }
35+ if(vertex.y > u_Center.y) {
36+ vertex.y += outlineWidth;
37+ text.y += outlineWidth;
38+ }
39+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(vertex.xy, 1.0)).xy, 1.0, 1.0);
40+ v_Position = a_Vertex.xy - u_Center;
41+ v_TexCoord = (u_TextureMatrix * vec3(text, 1.0)).xy;
42+ // u_WalkOffset normalizado a espacio UV para suavizar el desplazamiento del outfit
43+ // y eliminar el salto de 32px al cruzar de un tile al siguiente.
44+ vec2 smoothWalkOutfit = u_WalkOffset / 32.0;
45+ v_TexCoord2 = (u_TextureMatrix * vec3(text + smoothWalkOutfit, 1.0)).xy;
46+ v_TexCoord3 = (u_TextureMatrix * vec3(text2, 1.0)).xy;
47+}
48+
Top