src/fx 15 : random
This commit is contained in:
+2
-2
@@ -91,12 +91,12 @@ make -f Makefile.dev release-arch
|
||||
- [x] src 12 : pattern in my kitchen
|
||||
- [x] src 13 : another pattern in my kitchen
|
||||
- [x] src 14 : cursor with select
|
||||
- [ ] src 15 : random source
|
||||
- [x] src 15 : random source
|
||||
- [x] fx 11 : spill
|
||||
- [x] fx 12 : game of life
|
||||
- [x] fx 13 : sobel
|
||||
- [ ] fx 14 : colorize range (pretty color ranges)
|
||||
- [ ] fx 15 : random fx
|
||||
- [x] fx 15 : random fx
|
||||
- [x] frag 10 : move debug screen here
|
||||
- [ ] debug : add src/fx/A/B indicators
|
||||
- [ ] Other
|
||||
|
||||
+31
-15
@@ -507,24 +507,40 @@ subroutine(fx_stage_sub) vec4 fx_14(vec2 vUV, sampler2D previous, sampler2D feed
|
||||
return fx_master(c0, c, seed, m0);
|
||||
}
|
||||
|
||||
// TODO FX 15
|
||||
// FX 15 : Random
|
||||
subroutine(fx_stage_sub) vec4 fx_15(vec2 vUV, sampler2D previous, sampler2D feedback, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3, vec3 m0)
|
||||
{
|
||||
return fx_2(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
// start
|
||||
int fx = int(randTime(seed + 100, 16) * 14);
|
||||
|
||||
vec2 uv0 = vUV.st;
|
||||
float ratio = iResolution.x / iResolution.y;
|
||||
vec2 uv1 = (uv0 - .5) * vec2(ratio, 1);
|
||||
|
||||
// controls
|
||||
|
||||
// logic
|
||||
|
||||
vec3 c0 = texture(previous, uv0).xyz;
|
||||
vec3 c = c0;
|
||||
|
||||
return fx_master(c0, c, seed, m0);
|
||||
if (fx == 0) {
|
||||
return fx_1(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 1) {
|
||||
return fx_2(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 2) {
|
||||
return fx_3(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 3) {
|
||||
return fx_4(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 4) {
|
||||
return fx_5(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 5) {
|
||||
return fx_6(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 6) {
|
||||
return fx_7(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 7) {
|
||||
return fx_8(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 8) {
|
||||
return fx_9(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 9) {
|
||||
return fx_10(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 10) {
|
||||
return fx_11(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 11) {
|
||||
return fx_12(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else if (fx == 12) {
|
||||
return fx_13(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
} else {
|
||||
return fx_14(vUV, previous, feedback, seed, b1, f1, b2, f2, b3, f3, m0);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
+31
-42
@@ -457,51 +457,40 @@ subroutine(src_stage_sub) vec4 src_14(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3
|
||||
return vec4(f);
|
||||
}
|
||||
|
||||
// TODO SRC 15
|
||||
// SRC 15 : Random
|
||||
subroutine(src_stage_sub) vec4 src_15(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3)
|
||||
{
|
||||
return src_9(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
// start
|
||||
int src = int(randTime(seed + 100, 16) * 14);
|
||||
|
||||
vec2 uv0 = vUV.st;
|
||||
float ratio = iResolution.x / iResolution.y;
|
||||
vec2 uv1 = (uv0 - .5) * vec2(ratio, 1);
|
||||
|
||||
// controls
|
||||
|
||||
float circle = magic(f1, b1, seed + 10);
|
||||
float x_shift = magic(f2, b2, seed + 20);
|
||||
float grid_size = 0.1 + magic(f3, b3, seed + 30) * 0.9;
|
||||
bool show_grid = magic_trigger(b3, seed + 30);
|
||||
|
||||
// logic
|
||||
|
||||
float f = 0;
|
||||
|
||||
f += istep(circle * 0.5, length(uv1));
|
||||
|
||||
float txt = 0;
|
||||
float txt_rect = rect(uv1 * 10, vec2(0), vec2(2, 1));
|
||||
|
||||
txt += write_int(uv1 * 10, vec2(-1.33,-0.5), int(mod(iBeats, 4) + 1), 1);
|
||||
txt += char_at(uv1 * 10, vec2(-0.33, -0.5), 0x2E);
|
||||
txt += write_int(uv1 * 10, vec2(0.66,-0.5), int((mod(iBeats, 4) + 1) * 10), 1);
|
||||
|
||||
float grid = 0;
|
||||
|
||||
grid = istep(grid_size * 0.1, mod(uv1.x + grid_size * 0.05, grid_size)) + istep(grid_size * 0.1, mod(uv1.y + grid_size * 0.05, grid_size));
|
||||
|
||||
grid = mix(grid, 0, show_grid ? min(1, f + txt_rect) : 1);
|
||||
|
||||
vec3 c = vec3(istep(0.25, mod(uv0.x + x_shift, 0.5)), istep(0.25, mod(uv0.x + 0.125 + x_shift, 0.5)), istep(0.5, mod(uv0.x + x_shift, 1.0)));
|
||||
|
||||
c = mix(c, 1 - c, f);
|
||||
|
||||
c = mix(c, vec3(txt), txt_rect);
|
||||
|
||||
c = mix(c, vec3(grid) * 0.5, grid);
|
||||
|
||||
return vec4(c, 1);
|
||||
if (src == 0) {
|
||||
return src_1(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 1) {
|
||||
return src_2(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 2) {
|
||||
return src_3(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 3) {
|
||||
return src_4(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 4) {
|
||||
return src_5(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 5) {
|
||||
return src_6(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 6) {
|
||||
return src_7(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 7) {
|
||||
return src_8(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 8) {
|
||||
return src_9(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 9) {
|
||||
return src_10(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 10) {
|
||||
return src_11(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 11) {
|
||||
return src_12(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else if (src == 12) {
|
||||
return src_13(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
} else {
|
||||
return src_14(vUV, seed, b1, f1, b2, f2, b3, f3);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -11,8 +11,12 @@ uniform float iTime;
|
||||
uniform float iTempo;
|
||||
uniform float iBeats;
|
||||
|
||||
float randTime(float seed, int beats){
|
||||
return rand(seed + floor(iBeats / beats));
|
||||
}
|
||||
|
||||
float randTime(float seed){
|
||||
return rand(seed + floor(iBeats / 4));
|
||||
return randTime(seed, 4);
|
||||
}
|
||||
|
||||
float divider(float x)
|
||||
|
||||
Reference in New Issue
Block a user