diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 933456e..4c25055 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -89,8 +89,8 @@ make -f Makefile.dev release-arch - [x] src 9 : sentences repeat h - [x] src 10 : isometric grid - [x] src 12 : pattern in my kitchen - - [ ] src 13 : cursor with select - - [ ] src 14 : ? + - [x] src 13 : another pattern in my kitchen + - [ ] src 14 : cursor with select - [ ] src 15 : ? - [x] fx 11 : spill - [x] fx 12 : game of life diff --git a/README.md b/README.md index 79fb67d..8569054 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ options: | | **9** | Isometric grid | _Zoom_ | _Scroll_ | _Elevation_ | Lens | _Lens limit_ | _Lens power_ | _Pre Zoom_ | | **3** | **A** | Video In 2 + Thru | _Hue_ | _Saturation_ | _Light_ | Spill | _Bottom limit_ | _Top Limit_ | _Rotation_ | | | **B** | Scales | _Zoom_ | _Shape_ | _Ripples_ | Game Of Life | _Pixel Size_ | _Ruleset/Threshold_ | _Feedback_ | -| | **C** | (same as 6) | | | | Sobel Filter | _Horz. filter_ | _Vert. filter_ | _Filter Size_ | +| | **C** | Credenza | _Zoom_ | _Shape_ | _Ripples_ | Sobel Filter | _Horz. filter_ | _Vert. filter_ | _Filter Size_ | | | **D** | (same as 7) | | | | (same as 0) | | | | | | **E** | (same as 8) | | | | (same as 1) | | | | diff --git a/default/inc_src.glsl b/default/inc_src.glsl index f367d0b..cedf095 100644 --- a/default/inc_src.glsl +++ b/default/inc_src.glsl @@ -389,10 +389,9 @@ subroutine(src_stage_sub) vec4 src_12(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 return vec4(f); } -// TODO SRC 13 +// SRC 13 : Credenza subroutine(src_stage_sub) vec4 src_13(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 b2, vec2 f2, vec3 b3, vec2 f3) { - return src_7(vUV, seed, b1, f1, b2, f2, b3, f3); // start vec2 uv0 = vUV.st; @@ -401,9 +400,25 @@ subroutine(src_stage_sub) vec4 src_13(vec2 vUV, int seed, vec3 b1, vec2 f1, vec3 // controls + float zoom = 5 + magic(f1, b1, seed + 10) * 15; + float shape = 0.1 + magic(f2, b2, seed + 20) * 0.9; + float repeat = 1 + magic(f3, b3, seed + 30) * 10; + // logic + + vec2 uv2 = uv1; + + uv2 *= zoom; - return texture(iTex0, vUV); + uv2 = mod(uv2, 2); + + uv2 = abs(uv2 - 1); + + float f = istep(1, length(uv2)) * istep(1, length(1 - uv2)); + + f *= istep(0.5, saw((length(uv2) + shape + 0.5) * repeat)) * istep(0.5, saw((length(1 - uv2) + shape + 0.5) * repeat)); + + return vec4(f); } // TODO SRC 14