Skip to content

Commit 52634b2

Browse files
committed
dark _3
1 parent fe8ad22 commit 52634b2

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

filters/index.txt

+1
Original file line numberDiff line numberDiff line change
@@ -593,3 +593,4 @@ xor_rgb_smoother.glsl
593593
gblur.glsl
594594
xor_rgb_dark.glsl
595595
xor_rgb_dark_2.glsl
596+
xor_rgb_dark_3.glsl

filters/xor_rgb_dark_3.glsl

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#version 330
2+
3+
in vec2 tc;
4+
out vec4 color;
5+
uniform sampler2D samp;
6+
uniform float time_f;
7+
uniform vec2 iResolution;
8+
9+
vec4 xor_RGB(vec4 icolor, vec4 source) {
10+
ivec3 int_color;
11+
ivec4 isource = ivec4(source * 255);
12+
for(int i = 0; i < 3; ++i) {
13+
int_color[i] = int(255 * icolor[i]);
14+
int_color[i] = int_color[i]^isource[i];
15+
if(int_color[i] > 255)
16+
int_color[i] = int_color[i]%255;
17+
icolor[i] = float(int_color[i])/255;
18+
}
19+
return icolor;
20+
}
21+
22+
float pingPong(float x, float length) {
23+
float modVal = mod(x, length * 2.0);
24+
return modVal <= length ? modVal : length * 2.0 - modVal;
25+
}
26+
27+
vec4 blur(sampler2D image, vec2 uv, vec2 resolution) {
28+
vec2 texelSize = 1.0 / resolution;
29+
vec4 result = vec4(0.0);
30+
float kernel[100];
31+
32+
float kernelVals[100] = float[](0.5, 1.0, 1.5, 2.0, 2.5, 2.5, 2.0, 1.5, 1.0, 0.5,
33+
1.0, 2.0, 2.5, 3.0, 3.5, 3.5, 3.0, 2.5, 2.0, 1.0,
34+
1.5, 2.5, 3.0, 3.5, 4.0, 4.0, 3.5, 3.0, 2.5, 1.5,
35+
2.0, 3.0, 3.5, 4.0, 4.5, 4.5, 4.0, 3.5, 3.0, 2.0,
36+
2.5, 3.5, 4.0, 4.5, 5.0, 5.0, 4.5, 4.0, 3.5, 2.5,
37+
2.5, 3.5, 4.0, 4.5, 5.0, 5.0, 4.5, 4.0, 3.5, 2.5,
38+
2.0, 3.0, 3.5, 4.0, 4.5, 4.5, 4.0, 3.5, 3.0, 2.0,
39+
1.5, 2.5, 3.0, 3.5, 4.0, 4.0, 3.5, 3.0, 2.5, 1.5,
40+
1.0, 2.0, 2.5, 3.0, 3.5, 3.5, 3.0, 2.5, 2.0, 1.0,
41+
0.5, 1.0, 1.5, 2.0, 2.5, 2.5, 2.0, 1.5, 1.0, 0.5);
42+
43+
for (int i = 0; i < 100; i++) {
44+
kernel[i] = kernelVals[i];
45+
}
46+
float kernelSum = 842.0;
47+
48+
for (int x = -5; x <= 4; ++x) {
49+
for (int y = -5; y <= 4; ++y) {
50+
vec2 offset = vec2(float(x), float(y)) * texelSize;
51+
result += texture(image, uv + offset) * kernel[(y + 5) * 10 + (x + 5)];
52+
}
53+
}
54+
55+
return result / kernelSum;
56+
}
57+
58+
void main(void) {
59+
vec4 tcolor = blur(samp, tc, iResolution);
60+
float time_t = pingPong(time_f, 10.0) + 2.0;
61+
color = xor_RGB(sin(tcolor * time_t), texture(samp, tc));
62+
}
63+
64+

0 commit comments

Comments
 (0)