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_dizzy.frag +27-0 View file
@@ -0,0 +1,27 @@
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+
9+ // Shimmer effect
10+ float shimmer = sin(u_Time * 10.0) * 0.1;
11+ col.rgb += shimmer;
12+
13+ // Twist effect
14+ float twist = sin(u_Time * 5.0) * 0.2;
15+ col.rgb += vec3(twist, twist, twist);
16+
17+ // Glitch effect
18+ float glitchX = sin(u_Time * 20.0) * 0.01;
19+ float glitchY = cos(u_Time * 15.0) * 0.01;
20+ col.rgb += texture2D(u_Tex0, v_TexCoord + vec2(glitchX, glitchY)).rgb;
21+
22+ // Fade effect
23+ float fade = smoothstep(0.0, 1.0, u_Time * 0.1);
24+ col.rgb *= fade;
25+
26+ gl_FragColor = col;
27+}
A RD_Client/data/shaders/outfit_fblooded.frag +19-0 View file
@@ -0,0 +1,19 @@
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+
9+ // Glitch effect
10+ float glitchSpeed = 10.0;
11+ float glitchIntensity = 0.1;
12+ float glitchOffsetX = glitchIntensity * sin(u_Time * glitchSpeed);
13+ float glitchOffsetY = glitchIntensity * cos(u_Time * glitchSpeed);
14+ vec2 glitchUV = v_TexCoord + vec2(glitchOffsetX, glitchOffsetY);
15+ vec4 glitchColor = texture2D(u_Tex0, glitchUV);
16+ col.rgb += glitchColor.rgb;
17+
18+ gl_FragColor = col;
19+}
A RD_Client/data/shaders/outfit_full_black_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_full_black_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(500.0, 500.0);
14+vec2 direction = vec2(0.0,0.0);
15+float speed = 20.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_gilu_fragment.frag +21-0 View file
@@ -0,0 +1,21 @@
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+
14+ vec4 effectColor = texture2D(u_Tex1, v_TexCoord3);
15+
16+ vec4 c = vec4(effectColor.rgb, gl_FragColor.a);
17+
18+ gl_FragColor.rgb = mix(gl_FragColor.rgb, c.rgb, c.rgb);
19+
20+ if(gl_FragColor.a < 0.01) discard;
21+}
A RD_Client/data/shaders/outfit_gilu_vertex.frag +25-0 View file
@@ -0,0 +1,25 @@
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+ vec2 offset = direction * speed * u_Time;
21+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, u_Depth / 16384.0, 1.0);
22+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
23+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
24+ v_TexCoord3 = ((a_TexCoord + offset) / effectTextureSize);
25+}
A RD_Client/data/shaders/outfit_glitch_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_glitch_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(384.0, 384.0);
14+vec2 direction = vec2(1.0,1.0);
15+float speed = 1.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_glow.frag +45-0 View file
@@ -0,0 +1,45 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+varying vec2 v_TexCoord3;
5+varying vec2 v_Position;
6+uniform sampler2D u_Tex0;
7+uniform float u_Time;
8+uniform vec2 u_Resolution;
9+
10+vec3 outline_color = vec3(0.0, 1.0, 1.5);
11+float outline_alpha = 0.75;
12+float outline_color_threshold = 2.5;
13+float outline_thickness = 0.02;
14+
15+void main()
16+{
17+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
18+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
19+ vec4 texcolor2 = texture2D(u_Tex0, v_TexCoord3);
20+
21+ if (texcolor.r > outline_color_threshold) {
22+ if (texcolor.g > outline_color_threshold) {
23+ gl_FragColor *= u_Color[0]; // Apply outline_color if both R and G channels exceed the threshold
24+ } else {
25+ gl_FragColor *= u_Color[1]; // Apply outline_color if only R channel exceeds the threshold
26+ }
27+ } else if (texcolor.g > outline_color_threshold) {
28+ gl_FragColor *= u_Color[2]; // Apply outline_color if only G channel exceeds the threshold
29+ } else if (texcolor.b > outline_color_threshold) {
30+ gl_FragColor *= u_Color[3]; // Apply outline_color if only B channel exceeds the threshold
31+ }
32+ // Check alpha threshold and apply outline effect
33+ if (gl_FragColor.a < 0.01) {
34+ if (texcolor2.a > 0.01) {
35+ // Apply outline effect with specified parameters
36+ float outlineAnimation = abs(0.5 - mod(u_Time, 1.0));
37+ float outlineWidth = smoothstep(outline_thickness, outline_thickness + 0.01, length(v_Position));
38+ vec3 outlineColor = mix(gl_FragColor.rgb, outline_color, outlineWidth * outlineAnimation);
39+ gl_FragColor = vec4(outlineColor, 1.0);
40+ gl_FragColor.a *= outline_alpha;
41+ } else {
42+ discard; // Discard fragments below the alpha threshold
43+ }
44+ }
45+}
A RD_Client/data/shaders/outfit_glow_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+varying vec2 v_Position;
7+attribute vec2 a_Vertex;
8+uniform mat3 u_TransformMatrix;
9+uniform mat3 u_ProjectionMatrix;
10+uniform vec2 u_Offset;
11+uniform vec2 u_Resolution;
12+uniform vec2 u_Center;
13+
14+void main()
15+{
16+ vec2 vertex = a_Vertex;
17+ vec2 text = a_TexCoord;
18+ vec2 text2 = a_TexCoord;
19+ if (vertex.x < u_Center.x) {
20+ vertex.x -= 1.0;
21+ text.x -= 1.0;
22+ }
23+ if (vertex.x > u_Center.x) {
24+ vertex.x += 1.0;
25+ text.x += 1.0;
26+ }
27+ if (vertex.y < u_Center.y) {
28+ vertex.y -= 1.0;
29+ text.y -= 1.0;
30+ }
31+ if (vertex.y > u_Center.y) {
32+ vertex.y += 1.0;
33+ text.y += 1.0;
34+ }
35+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(vertex.xy, 1.0)).xy, 1.0, 1.0);
36+ v_Position = a_Vertex.xy - u_Center;
37+ v_TexCoord = (u_TextureMatrix * vec3(text, 1.0)).xy;
38+ v_TexCoord2 = (u_TextureMatrix * vec3(text + u_Offset, 1.0)).xy;
39+ v_TexCoord3 = (u_TextureMatrix * vec3(text2, 1.0)).xy;
40+}
A RD_Client/data/shaders/outfit_gold_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_gold_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(609.0, 559.0);
14+vec2 direction = vec2(1.0,0.2);
15+float speed = 10.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_greenshine_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_greenshine_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(580.0, 319.0);
14+vec2 direction = vec2(1.0,0.2);
15+float speed = 40.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_green_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.2, 0.0);
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_green_energy_vertex.frag +25-0 View file
@@ -0,0 +1,25 @@
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+ vec2 offset = direction * speed * u_Time;
21+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, u_Depth / 16384.0, 1.0);
22+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
23+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
24+ v_TexCoord3 = ((a_TexCoord + offset) / effectTextureSize);
25+}
A RD_Client/data/shaders/outfit_heat_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_heat_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, 512.0);
14+vec2 direction = vec2(1.0,0.2);
15+float speed = 20.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_horan.frag +27-0 View file
@@ -0,0 +1,27 @@
1+uniform mat4 u_Color;
2+varying vec2 v_TexCoord;
3+varying vec2 v_TexCoord2;
4+uniform sampler2D u_Tex0;
5+uniform float u_Time;
6+uniform vec2 u_Resolution;
7+
8+void main()
9+{
10+ // Calculate the center of the screen
11+ vec2 center = u_Resolution / 2.0;
12+
13+ // Calculate the distance from the current pixel to the center
14+ float distanceToCenter = length(v_TexCoord * u_Resolution - center);
15+
16+ // Create a pulsating rings effect based on time
17+ float pulse = 0.5 + 0.5 * sin(u_Time);
18+
19+ // Set the color based on the distance and pulsating effect
20+ vec4 color = vec4(0.2, 0.5, 0.8, 1.0) * (1.0 - pulse) + vec4(0.8, 0.2, 0.5, 1.0) * pulse;
21+
22+ // Apply the color to the pixel
23+ gl_FragColor = texture2D(u_Tex0, v_TexCoord) * color;
24+
25+ // If the fragment's alpha is too low, discard it
26+ if (gl_FragColor.a < 0.01) discard;
27+}
A RD_Client/data/shaders/outfit_horan_vert.frag +16-0 View file
@@ -0,0 +1,16 @@
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+uniform vec2 u_Offset;
9+
10+void main()
11+{
12+ gl_Position = vec4((u_ProjectionMatrix * u_TransformMatrix * vec3(a_Vertex.xy, 1.0)).xy, 1.0, 1.0);
13+ v_TexCoord = (u_TextureMatrix * vec3(a_TexCoord,1.0)).xy;
14+ v_TexCoord2 = (u_TextureMatrix * vec3(a_TexCoord + u_Offset,1.0)).xy;
15+}
16+
A RD_Client/data/shaders/outfit_ice_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_ice_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(710.0, 444.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_kors_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_kors_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(160.0, 285.0);
14+vec2 direction = vec2(1.0,0.2);
15+float speed = 20.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_line_fragment.frag +42-0 View file
@@ -0,0 +1,42 @@
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 = 4.0;
10+float height = 12.0;
11+float angle = 50.0; // degrees
12+float intensity = 2.0;
13+// CONFIG END
14+
15+vec2 rotate(vec2 v, float a) {
16+ float s = sin(a);
17+ float c = cos(a);
18+ mat2 m = mat2(c, -s, s, c);
19+ return m * v;
20+}
21+
22+void main()
23+{
24+ gl_FragColor = texture2D(u_Tex0, v_TexCoord);
25+ vec4 texcolor = texture2D(u_Tex0, v_TexCoord2);
26+ if(texcolor.r > 0.9) {
27+ gl_FragColor *= texcolor.g > 0.9 ? u_Color[0] : u_Color[1];
28+ } else if(texcolor.g > 0.9) {
29+ gl_FragColor *= u_Color[2];
30+ } else if(texcolor.b > 0.9) {
31+ gl_FragColor *= u_Color[3];
32+ }
33+
34+ if(texcolor.a > 0.9) {
35+ vec2 p = rotate(v_Position, (angle / 180.0) * 3.14);
36+ float frame = mod(p.y, height);
37+ float timeFrame = mod(u_Time * speed, height);
38+ float dist = min(abs(frame - timeFrame), min(abs(frame - timeFrame - height), abs(frame - timeFrame + height)));
39+ gl_FragColor.xyz *= intensity / sqrt(max(1.0, dist));
40+ }
41+ if(gl_FragColor.a < 0.01) discard;
42+}
Top