feat: new src
This commit is contained in:
+2
-1
@@ -12,7 +12,8 @@ out vec4 fragColor;
|
||||
uniform int iSeed1;
|
||||
uniform int iState1;
|
||||
uniform vec3 iGroup1_1[6];
|
||||
uniform sampler2D iTex1;
|
||||
|
||||
void main() {
|
||||
fragColor = src_stage(iState1, vUV, iSeed1, iGroup1_1[0], iGroup1_1[1].xy, iGroup1_1[2], iGroup1_1[3].xy, iGroup1_1[4], iGroup1_1[5].xy);
|
||||
fragColor = src_stage(iState1, vUV, iTex1, iSeed1, iGroup1_1[0], iGroup1_1[1].xy, iGroup1_1[2], iGroup1_1[3].xy, iGroup1_1[4], iGroup1_1[5].xy);
|
||||
}
|
||||
|
||||
+2
-1
@@ -12,7 +12,8 @@ out vec4 fragColor;
|
||||
uniform int iSeed2;
|
||||
uniform int iState2;
|
||||
uniform vec3 iGroup1_2[6];
|
||||
uniform sampler2D iTex2;
|
||||
|
||||
void main() {
|
||||
fragColor = src_stage(iState2, vUV, iSeed2, iGroup1_2[0], iGroup1_2[1].xy, iGroup1_2[2], iGroup1_2[3].xy, iGroup1_2[4], iGroup1_2[5].xy);
|
||||
fragColor = src_stage(iState2, vUV, iTex2, iSeed2, iGroup1_2[0], iGroup1_2[1].xy, iGroup1_2[2], iGroup1_2[3].xy, iGroup1_2[4], iGroup1_2[5].xy);
|
||||
}
|
||||
|
||||
+71
-34
@@ -39,13 +39,13 @@ vec4 src_thru(vec2 vUV, sampler2D tex, int seed, vec3 b1, vec2 f1, vec3 b2, vec2
|
||||
}
|
||||
|
||||
// SRC 1: feedback + thru
|
||||
vec4 src_1(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_1(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
return src_thru(vUV, iTex0, seed, b1, f1, b2, f2, b3, f3);
|
||||
}
|
||||
|
||||
// SRC 2 : lines
|
||||
vec4 src_2(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_2(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -72,7 +72,7 @@ vec4 src_2(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 3 : dots
|
||||
vec4 src_3(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_3(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -102,7 +102,7 @@ vec4 src_3(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
|
||||
|
||||
// SRC 4 : bacteria
|
||||
vec4 src_4(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_4(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -130,7 +130,7 @@ vec4 src_4(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 5 : noise
|
||||
vec4 src_5(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_5(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -168,7 +168,7 @@ vec4 src_5(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 6 : cp437
|
||||
vec4 src_6(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_6(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -202,8 +202,7 @@ vec4 src_6(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 7 : sentences
|
||||
|
||||
vec4 src_7(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_7(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -232,7 +231,7 @@ vec4 src_7(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 8 : sentences repeat
|
||||
vec4 src_8(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_8(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -267,7 +266,7 @@ vec4 src_8(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 9 : dungeon
|
||||
vec4 src_9(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_9(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -301,14 +300,14 @@ vec4 src_9(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2
|
||||
}
|
||||
|
||||
// SRC 10 :
|
||||
vec4 src_10(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_10(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// TODO
|
||||
return src_1(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_1(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
}
|
||||
|
||||
// SRC 11 : isometric grid
|
||||
vec4 src_11(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_11(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -360,7 +359,7 @@ vec4 src_11(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec
|
||||
}
|
||||
|
||||
// SRC 12 : Scales
|
||||
vec4 src_12(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_12(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -403,7 +402,7 @@ vec4 src_12(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec
|
||||
}
|
||||
|
||||
// SRC 13 : Credenza
|
||||
vec4 src_13(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_13(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// start
|
||||
|
||||
@@ -434,47 +433,85 @@ vec4 src_13(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec
|
||||
return vec4(f);
|
||||
}
|
||||
|
||||
// SRC 14 :
|
||||
vec4 src_14(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
// SRC 14 : Fire
|
||||
vec4 src_14(vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
// TODO
|
||||
return src_1(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
// start
|
||||
|
||||
vec2 uv0 = vUV.st;
|
||||
float ratio = iResolution.x / iResolution.y;
|
||||
vec2 uv1 = uv0 * vec2(ratio, 1.);
|
||||
|
||||
// controls
|
||||
|
||||
float zoom = magic(f1, b1, seed + 10.) * 200. + 50.;
|
||||
float cooling = (magic(f2, b2, seed + 20.) * 3. + 1.) * 4. / zoom;
|
||||
float ball_size = magic(f3, b3, seed + 30.) * 0.8 / ratio + 0.05;
|
||||
float ball_trigger = magic_b(b3, seed + 30.).x;
|
||||
|
||||
// logic
|
||||
|
||||
vec2 uv2 = uv1 * zoom;
|
||||
|
||||
uv2 = vec2(ivec2(uv1 * zoom));
|
||||
|
||||
float rand_pos = rand(uv2 + seed);
|
||||
|
||||
vec2 src_uv = uv2 - vec2(round(rand_pos), 1) + 0.5;
|
||||
|
||||
float src = mix(
|
||||
1.,
|
||||
mix(
|
||||
0.,
|
||||
texture(self, (src_uv / zoom) * vec2(iResolution.y / iResolution.x, 1.)).x,
|
||||
mix(1., step(0, src_uv.x) * step(0, src_uv.y), ball_trigger)
|
||||
),
|
||||
mix(
|
||||
step(0, src_uv.y),
|
||||
1. - h_circle(uv2, vec2(0.5 * ratio, 0.5) * zoom, ball_size * zoom, 0.05 * zoom),
|
||||
ball_trigger
|
||||
)
|
||||
);
|
||||
|
||||
float f = max(0., src - cooling * (rand(uv2 + int(iBeats * 16.) + seed + 10) - 0.33));
|
||||
|
||||
return vec4(f);
|
||||
}
|
||||
|
||||
vec4 src_stage(int src, vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
vec4 src_stage(int src, vec2 vUV, sampler2D self, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
if (src >= 15) {
|
||||
src = int(randTime(seed + 100.) * 14.) + 1;
|
||||
}
|
||||
|
||||
if (src == 1) {
|
||||
return src_1(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_1(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 2) {
|
||||
return src_2(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_2(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 3) {
|
||||
return src_3(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_3(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 4) {
|
||||
return src_4(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_4(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 5) {
|
||||
return src_5(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_5(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 6) {
|
||||
return src_6(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_6(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 7) {
|
||||
return src_7(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_7(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 8) {
|
||||
return src_8(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_8(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 9) {
|
||||
return src_9(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_9(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 10) {
|
||||
return src_10(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_10(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 11) {
|
||||
return src_11(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_11(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 12) {
|
||||
return src_12(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_12(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 13) {
|
||||
return src_13(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_13(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else {
|
||||
return src_14(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
return src_14(vUV, self, seed, b1, f1, b2, f2, b3, f3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user