Skip to content

Commit 77c1374

Browse files
committed
Other: Moonscape source GLSL had become corrupt.
1 parent d40368c commit 77c1374

File tree

3 files changed

+127
-43
lines changed

3 files changed

+127
-43
lines changed
Lines changed: 69 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,109 @@
1-
// Processed by 'GLSL Shader Shrinker' (Shrunk by 681 characters)
1+
// Processed by 'GLSL Shader Shrinker' (Shrunk by 866 characters)
22
// (https://github.com/deanthecoder/GLSLShaderShrinker)
33

44
#define v3 vec3
55
#define v2 vec2
66
#define S smoothstep
77
#define RET return
88
#define N normalize
9-
#define F float
9+
#define _f float
1010
#define R iResolution
1111

12-
float v(v2 A) { RET abs(2. * fbm(A) - 1.); }
12+
float u(v2 p) { RET fract(sin(dot(p, v2(123.45, 875.43))) * 5432.3); }
1313

14-
float w(v3 p) { RET length(p - v3(0, -.8, 2)) - .7; }
14+
float A(v2 p) {
15+
v2 i = floor(p),
16+
f = fract(p);
17+
_f a = u(i),
18+
b = u(i + v2(1, 0)),
19+
c = u(i + v2(0, 1)),
20+
d = u(i + v2(1));
21+
f = f * f * (3. - 2. * f);
22+
RET mix(a, b, f.x) + (c - a) * f.y * (1. - f.x) + (d - b) * f.x * f.y;
23+
}
24+
25+
float q(v2 p) {
26+
_f f = 0.;
27+
f += .5 * A(p * 1.1);
28+
f += .22 * A(p * 2.3);
29+
f += .155 * A(p * 3.9);
30+
f += .0625 * A(p * 8.4);
31+
f += .03125 * A(p * 15.);
32+
RET f;
33+
}
34+
35+
float H(_f v) { RET S(.195, .1975, v) * S(.2, .1975, v); }
36+
37+
float I(v2 K) { RET H(q(K * 1e2)); }
38+
39+
float E(v2 L) { RET abs(2. * q(L) - 1.); }
40+
41+
float F(v3 p) { RET length(p - v3(0, -.8, 2)) - .7; }
1542

16-
float x(v3 p) {
43+
float G(v3 p) {
1744
if (p.y > 0.) RET 1e10;
18-
F h = v(p.xz * .2);
45+
_f h = E(p.xz * .2);
1946
p.xz += v2(1);
20-
h += .5 * v(p.xz * .8);
21-
h += .25 * v(p.xz * 2.);
22-
h += .03 * v(p.xz * 16.1);
23-
h *= .7 * fbm(p.xz);
47+
h += .5 * E(p.xz * .8);
48+
h += .25 * E(p.xz * 2.);
49+
h += .03 * E(p.xz * 16.1);
50+
h *= .7 * q(p.xz);
2451
h -= .7;
2552
RET abs(p.y - h) * .6;
2653
}
2754

28-
vec2 q(v3 p) {
29-
F f = x(p),
30-
g = w(p);
31-
RET f < g ? v2(f, 1) : v2(g, 2);
55+
vec2 z(v3 p) {
56+
_f k = G(p),
57+
m = F(p);
58+
RET k < m ? v2(k, 1) : v2(m, 2);
3259
}
3360

34-
vec3 c(v3 p) {
61+
vec3 g(v3 p) {
3562
const v2 e = v2(1, -1) * 29e-5;
36-
RET N(e.xyy * q(p + e.xyy).x + e.yyx * q(p + e.yyx).x + e.yxy * q(p + e.yxy).x + e.xxx * q(p + e.xxx).x);
63+
RET N(e.xyy * z(p + e.xyy).x + e.yyx * z(p + e.yyx).x + e.yxy * z(p + e.yxy).x + e.xxx * z(p + e.xxx).x);
3764
}
3865

39-
float a(v3 r, v3 m) {
40-
F s = 1.,
41-
d = .1;
42-
v3 t = N(m - r);
66+
float j(v3 B, v3 x) {
67+
_f s = 1.,
68+
d = .1;
69+
v3 C = N(x - B);
4370
while (d < 10. && s > 0.) {
44-
F i = q(r + t * d).x;
45-
s = min(s, i / d);
46-
d += clamp(i, .2, 1.);
71+
_f o = z(B + C * d).x;
72+
s = min(s, o / d);
73+
d += clamp(o, .2, 1.);
4774
}
4875
RET S(0., 1., s);
4976
}
5077

51-
void mainImage(out vec4 j, v2 l) {
52-
v2 z = (l - .5 * R.xy) / R.y;
53-
v3 p, b,
54-
u = N(v3(z, 1));
55-
F d = .01,
56-
k = 0.;
57-
for (F steps = 0.; steps < 80.; steps++) {
58-
p = v3(0, 0, -3) + u * d;
59-
v2 h = q(p);
78+
void mainImage(out vec4 r, v2 t) {
79+
v2 K = (t - .5 * R.xy) / R.y;
80+
v3 p, l,
81+
D = N(v3(K, 1));
82+
_f d = .01,
83+
w = 0.;
84+
for (_f steps = 0.; steps < 80.; steps++) {
85+
p = v3(0, 0, -3) + D * d;
86+
v2 h = z(p);
6087
if (abs(h.x) < .004 * d) {
61-
k = h.y;
88+
w = h.y;
6289
break;
6390
}
6491

6592
if (d > 5.) break;
6693
d += h.x;
6794
}
6895

69-
if (k < .5) b = v3(stars(z));
96+
if (w < .5) l = v3(I(K));
7097
else {
71-
v3 y = v3(8. - 16. * iMouse.x / R.x, 6. - cos(iTime * .2), -1. - iMouse.y / 18.),
72-
n = c(p),
73-
o = v3(1.82, 1.8, 1.78) * dot(n, N(y - p));
74-
if (k > 1.5) {
75-
b = mix(mix(mix(v3(.05, .05, .8), v3(.05, .25, .05), S(.4, .52, fbm(n.xy * 3.1 + v2(iTime * .05, 0)))), v3(1), S(.8, .95, n.y) * S(.1, .8, fbm(n.xz * 10. + v2(iTime * .1, 0)))), v3(.3, .5, .95), S(-.5, 0., n.z));
76-
b *= o;
98+
v3 J = v3(8. - 16. * iMouse.x / R.x, 6. - cos(iTime * .2), -1. - iMouse.y / 18.),
99+
n = g(p),
100+
y = v3(1.82, 1.8, 1.78) * dot(n, N(J - p));
101+
if (w > 1.5) {
102+
l = mix(mix(mix(v3(.05, .05, .8), v3(.05, .25, .05), S(.4, .52, q(n.xy * 3.1 + v2(iTime * .05, 0)))), v3(1), S(.8, .95, n.y) * S(.1, .8, q(n.xz * 10. + v2(iTime * .1, 0)))), v3(.3, .5, .95), S(-.5, 0., n.z));
103+
l *= y;
77104
}
78-
else if (k > .5) b = v3(.5) * o * pow(a(p, y), 2.);
105+
else if (w > .5) l = v3(.5) * y * pow(j(p, J), 2.);
79106
}
80107

81-
j = vec4(pow(b, v3(.4545)), 1);
108+
r = vec4(pow(l, v3(.4545)), 1);
82109
}

ShaderShrinker/UnitTests/TestFiles/Moonscape.glsl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
// From https://www.shadertoy.com/view/3slfW2
22

3+
float hash(vec2 p) { return fract(sin(dot(p, vec2(123.45, 875.43))) * 5432.3); }
4+
5+
float noise(vec2 p) {
6+
vec2 i = floor(p),
7+
f = fract(p);
8+
float a = hash(i),
9+
b = hash(i + vec2(1, 0)),
10+
c = hash(i + vec2(0, 1)),
11+
d = hash(i + vec2(1));
12+
f = f * f * (3. - 2. * f);
13+
return mix(a, b, f.x) + (c - a) * f.y * (1. - f.x) + (d - b) * f.x * f.y;
14+
}
15+
16+
float fbm(vec2 p) {
17+
float f = 0.;
18+
f += .5 * noise(p * 1.1);
19+
f += .22 * noise(p * 2.3);
20+
f += .155 * noise(p * 3.9);
21+
f += .0625 * noise(p * 8.4);
22+
f += .03125 * noise(p * 15.);
23+
return f;
24+
}
25+
26+
float smoothBounds(float a, float b, float v) {
27+
float midPoint = a + (b - a) * .5;
28+
return smoothstep(a, midPoint, v) * smoothstep(b, midPoint, v);
29+
}
30+
31+
float stars(vec2 uv) { return smoothBounds(.195, .2, fbm(uv * 1e2)); }
32+
333
float rfbm(vec2 xz) { return abs(2.0 * fbm(xz) - 1.0); }
434

535
float sdEarth(vec3 p) {

ShaderShrinker/UnitTests/TestFiles/SimplifiedReference/Moonscape.glsl

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,33 @@
1-
// Processed by 'GLSL Shader Shrinker' (Shrunk by 311 characters)
1+
// Processed by 'GLSL Shader Shrinker' (Shrunk by 360 characters)
22
// (https://github.com/deanthecoder/GLSLShaderShrinker)
33

4+
float hash(vec2 p) { return fract(sin(dot(p, vec2(123.45, 875.43))) * 5432.3); }
5+
6+
float noise(vec2 p) {
7+
vec2 i = floor(p),
8+
f = fract(p);
9+
float a = hash(i),
10+
b = hash(i + vec2(1, 0)),
11+
c = hash(i + vec2(0, 1)),
12+
d = hash(i + vec2(1));
13+
f = f * f * (3. - 2. * f);
14+
return mix(a, b, f.x) + (c - a) * f.y * (1. - f.x) + (d - b) * f.x * f.y;
15+
}
16+
17+
float fbm(vec2 p) {
18+
float f = 0.;
19+
f += .5 * noise(p * 1.1);
20+
f += .22 * noise(p * 2.3);
21+
f += .155 * noise(p * 3.9);
22+
f += .0625 * noise(p * 8.4);
23+
f += .03125 * noise(p * 15.);
24+
return f;
25+
}
26+
27+
float smoothBounds(float v) { return smoothstep(.195, .1975, v) * smoothstep(.2, .1975, v); }
28+
29+
float stars(vec2 uv) { return smoothBounds(fbm(uv * 1e2)); }
30+
431
float rfbm(vec2 xz) { return abs(2. * fbm(xz) - 1.); }
532

633
float sdEarth(vec3 p) { return length(p - vec3(0, -.8, 2)) - .7; }

0 commit comments

Comments
 (0)