summaryrefslogtreecommitdiff
path: root/workspaces/main
diff options
context:
space:
mode:
Diffstat (limited to 'workspaces/main')
-rw-r--r--workspaces/main/assets.txt1
-rw-r--r--workspaces/main/shaders/scene2.wgsl43
-rw-r--r--workspaces/main/timeline.seq7
3 files changed, 47 insertions, 4 deletions
diff --git a/workspaces/main/assets.txt b/workspaces/main/assets.txt
index 85ae1fc..56d0942 100644
--- a/workspaces/main/assets.txt
+++ b/workspaces/main/assets.txt
@@ -82,6 +82,7 @@ CIRCLE_MASK_COMPUTE_SHADER, NONE, shaders/circle_mask_compute.wgsl, "Circle mask
CIRCLE_MASK_RENDER_SHADER, NONE, shaders/circle_mask_render.wgsl, "Circle mask render shader"
MASKED_CUBE_SHADER, NONE, shaders/masked_cube.wgsl, "Masked cube shader"
SHADER_SCENE1, NONE, shaders/scene1.wgsl, "Scene1 effect shader"
+SHADER_SCENE2, NONE, shaders/scene2.wgsl, "Scene2 effect shader"
# --- Sequence Shaders ---
SHADER_SEQUENCE_V2_UNIFORMS, NONE, ../../src/shaders/sequence_uniforms.wgsl, "Sequence Uniforms Snippet"
diff --git a/workspaces/main/shaders/scene2.wgsl b/workspaces/main/shaders/scene2.wgsl
new file mode 100644
index 0000000..486f41e
--- /dev/null
+++ b/workspaces/main/shaders/scene2.wgsl
@@ -0,0 +1,43 @@
+// Scene2 effect shader - ShaderToy conversion
+// Generated by convert_shadertoy.py
+// NOTE: Manual review recommended - conversion is basic
+
+#include "sequence_uniforms"
+#include "render/fullscreen_uv_vs"
+
+@group(0) @binding(2) var<uniform> uniforms: UniformsSequenceParams;
+
+
+fn N(vec3f a, vec3f p) { return abs(dot(sin(uniforms.time+.1*p.z+.3*p / a), vec3f(a+a))); }
+const NUM_LAYERS: f32 = 12.;
+
+
+
+@fragment fn fs_main(in: VertexOutput) -> @location(0) vec4f {
+ // Flip Y to match ShaderToy convention (origin at bottom-left)
+ let flipped = vec2f(in.position.x, uniforms.resolution.y - in.position.y);
+ let q = flipped / uniforms.resolution;
+ var coord = -1.0 + 2.0 * q;
+ coord.x *= uniforms.resolution.x / uniforms.resolution.y;
+
+ f32 i,s;
+ vec3f p = vec3f[0),r = uniforms.resolution;
+
+ vec2f uv = (u-.5*uniforms.resolution.xy)/uniforms.resolution.y;
+
+ f32 t = uniforms.time*.0;
+ vec3f col = vec3f(0);
+
+ u = (u+u-r.xy)/r.y;
+ for(o*=i; i++<1e2; ) {
+ p += vec3f(u * s, s);
+ s = 6.+(p.y);
+ s -= N(.08);
+ s -= N(.2);
+ s -= N(.6);
+ s = .1 + abs(s)*.2;
+ o += vec4f(4,2,1,0)/s;
+ }
+ o *= smoothstep(0.8, 0.75, abs(u.y));
+ o = tanh(o / 2e3 / length(u));
+}
diff --git a/workspaces/main/timeline.seq b/workspaces/main/timeline.seq
index 2b843a7..6399bdf 100644
--- a/workspaces/main/timeline.seq
+++ b/workspaces/main/timeline.seq
@@ -9,10 +9,9 @@ SEQUENCE 4.00 0 "rotating_cube"
EFFECT + RotatingCube source -> temp1 0.00 4.00
EFFECT + Placeholder temp1 -> sink 1.00 4.00
-SEQUENCE 8.00 0 "flash_cube"
- # FlashCube (placeholder) -> Flash (placeholder) -> sink
- EFFECT - Placeholder source -> temp1 0.00 4.02
- EFFECT + Placeholder temp1 -> sink 0.00 0.40
+SEQUENCE 8.00 0 "scene 2"
+ # Scene2 test
+ EFFECT + Scene2Effect source -> sink 0.0 4.0
SEQUENCE 12.00 1 "particles"
# Particles -> Blur -> sink