1
- // Processed by 'GLSL Shader Shrinker' (Shrunk by 636 characters)
1
+ // Processed by 'GLSL Shader Shrinker' (Shrunk by 634 characters)
2
2
// (https://github.com/deanthecoder/GLSLShaderShrinker)
3
3
4
4
#define v3 vec3
11
11
#define _f float
12
12
#define iR iResolution
13
13
#define z0 min (iTime, 0 .)
14
- #define X (x) clamp (x, 0 ., 1 .)
14
+ #define Y (x) clamp (x, 0 ., 1 .)
15
15
#define S(x) SS(0 ., 1 ., x)
16
16
17
17
_f T,
@@ -24,96 +24,96 @@ struct Hit {
24
24
int id;
25
25
};
26
26
27
- #define L (a) if (a.d < h.d) h = a
27
+ #define M (a) if (a.d < h.d) h = a
28
28
29
- mat2 W (_f a) {
30
- v2 u = cos (v2(a, a - 1.5705 ));
31
- RET mat2 (u , - u .y, u .x);
29
+ mat2 X (_f a) {
30
+ v2 w = cos (v2(a, a - 1.5705 ));
31
+ RET mat2 (w , - w .y, w .x);
32
32
}
33
33
34
- vec2 P (v2 p, _f n) {
34
+ vec2 Q (v2 p, _f n) {
35
35
_f t = 3.141 / n,
36
36
a = mod (atan (p.y, p.x) + t, 2 . * t) - t;
37
37
RET LNG(p) * v2(cos (a), sin (a));
38
38
}
39
39
40
- float l (v3 p) {
40
+ float k (v3 p) {
41
41
v3 q = abs (p) - v3(.15 , .08 , .025 );
42
42
RET LNG(MX(q, 0 .)) + min (MX(q.x, MX(q.y, q.z)), 0 .);
43
43
}
44
44
45
- float k (v3 p, _f h, _f r) {
45
+ float m (v3 p, _f h, _f r) {
46
46
p.x -= clamp (p.x, 0 ., h);
47
47
RET LNG(p) - r;
48
48
}
49
49
50
- float Z (v3 p) {
50
+ float sa (v3 p) {
51
51
p = abs (p);
52
52
RET (p.x + p.y + p.z - .3 ) * .577 ;
53
53
}
54
54
55
- float m (v3 p) {
56
- p.yz = P (p.yz, 3 .);
55
+ float o (v3 p) {
56
+ p.yz = Q (p.yz, 3 .);
57
57
p.x = abs (p.x) - .9 ;
58
58
p.y-- ;
59
- p.xy *= W (-.5 );
60
- _f d = MX(k (p, 1.2 , .12 * S(p.x + .5 )), abs (p.z) - .06 );
61
- p.xy *= W (- 2.725 );
59
+ p.xy *= X (-.5 );
60
+ _f d = MX(m (p, 1.2 , .12 * S(p.x + .5 )), abs (p.z) - .06 );
61
+ p.xy *= X (- 2.725 );
62
62
p.x += .1 ;
63
63
p.y -= .05 ;
64
- RET min (d, MX(k (p, .9 , .1 * (1.1 - S(p.x - .2 ))), abs (p.z) - .04 ));
64
+ RET min (d, MX(m (p, .9 , .1 * (1.1 - S(p.x - .2 ))), abs (p.z) - .04 ));
65
65
}
66
66
67
- vec3 R (v3 V , v2 UV) {
68
- v3 f = NM(v3(0 , 2 , 0 ) - V ),
67
+ vec3 U (v3 W , v2 UV) {
68
+ v3 f = NM(v3(0 , 2 , 0 ) - W ),
69
69
r = NM(cross (v3(0 , 1 , 0 ), f));
70
70
RET NM(f + r * UV.x + cross (f, r) * UV.y);
71
71
}
72
72
73
- Hit J (v3 p) {
73
+ Hit K (v3 p) {
74
74
p.y -= 2 .;
75
75
Hit h = Hit(abs (p.y + 2 .), 1 );
76
- v3 O = p;
77
- _f b , x, d, s, i, tp, w ,
76
+ v3 P = p;
77
+ _f j , x, d, s, i, tp, y ,
78
78
t = (5 . - clamp (T - 3 ., 0 ., 5 .)) * 1.25664 ;
79
- p.yz *= W ((sin (t) + sin (2 . * t)) * sign (p.x) * 1.4 );
79
+ p.yz *= X ((sin (t) + sin (2 . * t)) * sign (p.x) * 1.4 );
80
80
t = MX(0 ., T - 8 .);
81
- b = X ((t - 1 .) / 8 .);
82
- v2 sn = S(v2(b * 4 ., b * 4.5 - 3 .)) * .7 ,
81
+ j = Y ((t - 1 .) / 8 .);
82
+ v2 sn = S(v2(j * 4 ., j * 4.5 - 3 .)) * .7 ,
83
83
f = p.x - sn * sign (p.x),
84
- D = - abs (p.x) - .01 + sn;
84
+ E = - abs (p.x) - .01 + sn;
85
85
p.x = p.x < 0 . ? min (0 ., f.x) : MX(0 ., f.x);
86
86
x = abs (p.x) - .6 ;
87
87
d = MX(MX(dot (v2(1.5 , .6 ), v2(LNG(p.yz), - x)), - x), MX(LNG(p.yz) - .5 , 1.2 - abs (p.x)));
88
- L (Hit(min (d, m (p)), 3 ));
88
+ M (Hit(min (d, o (p)), 3 ));
89
89
s = LNG(p) - 1 .;
90
- d = MX(min (LNG(v2(s, dot (sin (p * 26 .), cos (p.zxy * 26 .)) * .03 )) - .02 , abs (s + .08 ) - .05 ), D .x);
91
- p.x = O .x < 0 . ? min (0 ., f.y) : MX(0 ., f.y);
90
+ d = MX(min (LNG(v2(s, dot (sin (p * 26 .), cos (p.zxy * 26 .)) * .03 )) - .02 , abs (s + .08 ) - .05 ), E .x);
91
+ p.x = P .x < 0 . ? min (0 ., f.y) : MX(0 ., f.y);
92
92
i = mod (floor (atan (- p.y, p.z) * 3.183 + 10 .) + 2 ., 20 .);
93
- tp = X(b * 4 . - 2 .) * 20 .;
94
- w = MX(abs (LNG(p) - .65 ) - .05 , D .y + .01 + .13 * step (i, tp) * min (tp - i, 1 .));
95
- p.yz = P (p.yz, 20 .);
93
+ tp = Y(j * 4 . - 2 .) * 20 .;
94
+ y = MX(abs (LNG(p) - .65 ) - .05 , E .y + .01 + .13 * step (i, tp) * min (tp - i, 1 .));
95
+ p.yz = Q (p.yz, 20 .);
96
96
p.y -= .64 ;
97
- d = min (d, MX(w , - l (p)));
98
- p = O ;
99
- p.yz *= W (t * .1 );
100
- mat2 r = W (2.5 );
101
- w = 1e7 ;
97
+ d = min (d, MX(y , - k (p)));
98
+ p = P ;
99
+ p.yz *= X (t * .1 );
100
+ mat2 r = X (2.5 );
101
+ y = 1e7 ;
102
102
for (i = z0; i < 4 .; i++ ) {
103
103
p -= .02 ;
104
- p.xy *= W (3.7 + i);
104
+ p.xy *= X (3.7 + i);
105
105
p.yz *= r;
106
- w = min (w, Z (p) - .005 );
106
+ y = min (y, sa (p) - .005 );
107
107
}
108
108
109
- g += 8e-5 / (.001 + w * w );
110
- L (Hit(w , 4 ));
111
- p = O ;
109
+ g += 8e-5 / (.001 + y * y );
110
+ M (Hit(y , 4 ));
111
+ p = P ;
112
112
p.x = abs (p.x);
113
113
p.y += cos (p.x + t) * .05 ;
114
- w = LNG(p.yz) - .01 ;
115
- g += 5e-4 / (.001 + w * w );
116
- L (Hit(min (d, w ), 2 ));
114
+ y = LNG(p.yz) - .01 ;
115
+ g += 5e-4 / (.001 + y * y );
116
+ M (Hit(min (d, y ), 2 ));
117
117
RET h;
118
118
}
119
119
@@ -122,42 +122,42 @@ vec3 N(v3 p, _f t) {
122
122
v3 n = v3(0 );
123
123
for (int i = min (iFrame, 0 ); i < 4 ; i++ ) {
124
124
v3 e = .005773 * (2 . * v3(((i + 3 ) >> 1 ) & 1 , (i >> 1 ) & 1 , i & 1 ) - 1 .);
125
- n += e * J (p + e * h).d;
125
+ n += e * K (p + e * h).d;
126
126
}
127
127
128
128
RET NM(n);
129
129
}
130
130
131
- float sw(v3 p, v3 H ) {
131
+ float sw(v3 p, v3 I ) {
132
132
_f i, h,
133
133
s = 1 .,
134
134
t = .1 ;
135
135
for (i = z0; i < 15 .; i++ ) {
136
- h = J (t * H + p).d;
136
+ h = K (t * I + p).d;
137
137
s = min (s, 15 . * h / t);
138
138
t += h;
139
139
if (s < .001 || t > 10 .) break ;
140
140
}
141
141
142
- RET X (s);
142
+ RET Y (s);
143
143
}
144
144
145
- float j (v3 p, v3 n, _f h) { RET J (h * n + p).d / h; }
145
+ float l (v3 p, v3 n, _f h) { RET K (h * n + p).d / h; }
146
146
147
- vec3 vg(v3 c, v2 y ) {
148
- v2 q = y .xy / iR.xy;
147
+ vec3 vg(v3 c, v2 z ) {
148
+ v2 q = z .xy / iR.xy;
149
149
c *= .5 + .5 * pow (16 . * q.x * q.y * (1 . - q.x) * (1 . - q.y), .4 );
150
150
RET c;
151
151
}
152
152
153
- float z (v3 v) { RET exp (dot (v, v) * -.002 ); }
153
+ float B (v3 v) { RET exp (dot (v, v) * -.002 ); }
154
154
155
- vec3 I (v3 p, v3 U , _f d, Hit h) {
155
+ vec3 J (v3 p, v3 V , _f d, Hit h) {
156
156
v3 c,
157
- H = NM(v3(6 , 35 , - 10 ) - p),
157
+ I = NM(v3(6 , 35 , - 10 ) - p),
158
158
n = N(p, d);
159
- _f _, F, G, C ,
160
- E = g,
159
+ _f b, G, H, D ,
160
+ F = g,
161
161
SP = 1 .;
162
162
if (h.id == 2 ) {
163
163
c = v3(.2 );
@@ -167,60 +167,60 @@ vec3 I(v3 p, v3 U, _f d, Hit h) {
167
167
else if (h.id == 3 ) c = v3(.6 );
168
168
else c = v3(.18 , .02 , .34 );
169
169
170
- _ = mix (j (p, n, .2 ), j (p, n, 2 .), .7 );
171
- F = X (.1 + .9 * dot (H , n)) * (.3 + .7 * sw(p, H )) * (.3 + .7 * _ );
172
- G = X (.1 + .9 * dot (H * v3(- 1 , 1 , - 1 ), n)) + pow (X (dot (U , reflect (H , n))), 10 .) * SP;
173
- C = SS(.7 , 1 ., 1 . + dot (U , n)) * .5 ;
174
- g = E ;
175
- RET mix ((F * v3(.43 , .29 , .52 ) + G * _ * v3(2.11 , 1.69 , 1.48 )) * c, v3(.05 ), C );
170
+ b = mix (l (p, n, .2 ), l (p, n, 2 .), .7 );
171
+ G = Y (.1 + .9 * dot (I , n)) * (.3 + .7 * sw(p, I )) * (.3 + .7 * b );
172
+ H = Y (.1 + .9 * dot (I * v3(- 1 , 1 , - 1 ), n)) + pow (Y (dot (V , reflect (I , n))), 10 .) * SP;
173
+ D = SS(.7 , 1 ., 1 . + dot (V , n)) * .5 ;
174
+ g = F ;
175
+ RET mix ((G * v3(.43 , .29 , .52 ) + H * b * v3(2.11 , 1.69 , 1.48 )) * c, v3(.05 ), D );
176
176
}
177
177
178
- vec4 K (inout vec3 p, v3 U , _f s, _f M ) {
178
+ vec4 L (inout vec3 p, v3 V , _f s, _f O ) {
179
179
_f i,
180
180
d = .01 ;
181
181
g = 0 .;
182
182
Hit h;
183
183
for (i = z0; i < s; i++ ) {
184
- h = J (p);
184
+ h = K (p);
185
185
if (abs (h.d) < .0015 ) break ;
186
186
d += h.d;
187
- if (d > M ) RET vec4 (0 );
188
- p += h.d * U ;
187
+ if (d > O ) RET vec4 (0 );
188
+ p += h.d * V ;
189
189
}
190
190
191
- _f Q = mix (1 ., .3 , (sin (T) * .5 + .5 ) * SS(13 ., 15 ., T));
192
- RET vec4 (pow (g, Q ) * v3(.73 , .5 , .88 ) + I (p, U , d, h), h.id);
191
+ _f R = mix (1 ., .3 , (sin (T) * .5 + .5 ) * SS(13 ., 15 ., T));
192
+ RET vec4 (pow (g, R ) * v3(.73 , .5 , .88 ) + J (p, V , d, h), h.id);
193
193
}
194
194
195
- vec3 Y (v3 V , v3 U ) {
196
- v3 p = V ;
197
- vec4 o = K (p, U , 1e2 , 50 .);
198
- o .rgb *= z (p - V );
199
- if (o .w > 1 .) {
200
- U = reflect (U , N(p, LNG(p - V )));
201
- p += U * .01 ;
202
- o += mix (.2 , .3 , o .w - 2 .) * K (p, U , 50 ., 10 .) * z(V - p);
195
+ vec3 Z (v3 W , v3 V ) {
196
+ v3 p = W ;
197
+ vec4 u = L (p, V , 1e2 , 50 .);
198
+ u .rgb *= B (p - W );
199
+ if (u .w > 1 .) {
200
+ V = reflect (V , N(p, LNG(p - W )));
201
+ p += V * .01 ;
202
+ u += mix (.2 , .3 , u .w - 2 .) * L (p, V , 50 ., 10 .) * B(W - p);
203
203
}
204
204
205
- RET MX(v3(0 ), o .rgb);
205
+ RET MX(v3(0 ), u .rgb);
206
206
}
207
207
208
- void mainImage(out vec4 B , v2 y ) {
208
+ void mainImage(out vec4 C , v2 z ) {
209
209
T = mod (iTime, 30 .);
210
- v3 o ,
211
- V = mix (v3(1 , 2 , - 4 ), v3(0 , 3.5 , - 3 ), S(T / 4 .));
212
- v2 UV = (y - .5 * iR.xy) / iR.y;
213
- o = Y(V, R(V , UV));
210
+ v3 u ,
211
+ W = mix (v3(1 , 2 , - 4 ), v3(0 , 3.5 , - 3 ), S(T / 4 .));
212
+ v2 UV = (z - .5 * iR.xy) / iR.y;
213
+ u = Z(W, U(W , UV));
214
214
#ifdef A
215
- if (fwidth (o .r) > .03 ) {
215
+ if (fwidth (u .r) > .03 ) {
216
216
for (_f dx = z0; dx <= 1 .; dx++ ) {
217
217
for (_f dy = z0; dy <= 1 .; dy++ )
218
- o += Y(V, R(V , UV + (v2(dx, dy) - .5 ) / iR.xy));
218
+ u += Z(W, U(W , UV + (v2(dx, dy) - .5 ) / iR.xy));
219
219
}
220
220
221
- o /= 5 .;
221
+ u /= 5 .;
222
222
}
223
223
224
224
#endif
225
- B = vec4 (vg(pow (o , v3(.45 )) * X (iTime), y ), 1 );
225
+ C = vec4 (vg(pow (u , v3(.45 )) * Y (iTime), z ), 1 );
226
226
}
0 commit comments