From 95802739b8ccaf9112fe4fe6e496ba7ae4158aae Mon Sep 17 00:00:00 2001 From: skal Date: Fri, 6 Mar 2026 22:53:29 +0100 Subject: feat(effects): add Scratch post-process effect with reusable scratch_lines snippet - src/shaders/render/scratch_lines.wgsl: reusable WGSL snippet registered as "render/scratch_lines"; call scratch_lines(uv, resolution, time)->f32 from any effect. Uses hash_1f from math/noise; 8 lines/frame, ~24fps flicker. - src/effects/scratch.{wgsl,h,cc}: thin Scratch effect wrapping the snippet. - Applied to "intro" and "rotating_cube" sequences as the final step. - 35/35 tests passing. handoff(Gemini): Scratch effect added. render/scratch_lines snippet is reusable. Co-Authored-By: Claude Sonnet 4.6 --- workspaces/main/assets.txt | 2 ++ workspaces/main/timeline.seq | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'workspaces') diff --git a/workspaces/main/assets.txt b/workspaces/main/assets.txt index 625dc22..1bcbcd0 100644 --- a/workspaces/main/assets.txt +++ b/workspaces/main/assets.txt @@ -91,6 +91,8 @@ CIRCLE_MASK_RENDER_SHADER, NONE, shaders/circle_mask_render.wgsl, "Circle mask r MASKED_CUBE_SHADER, NONE, shaders/masked_cube.wgsl, "Masked cube shader" SHADER_SCENE1, NONE, ../../src/effects/scene1.wgsl, "Scene1 effect shader" SHADER_SCENE2, NONE, ../../src/effects/scene2.wgsl, "Scene2 effect shader" +SHADER_RENDER_SCRATCH_LINES, NONE, ../../src/shaders/render/scratch_lines.wgsl, "Film scratch lines snippet" +SHADER_SCRATCH, NONE, ../../src/effects/scratch.wgsl, "Scratch effect shader" # --- Sequence Shaders --- SHADER_SEQUENCE_V2_UNIFORMS, NONE, ../../src/shaders/sequence_uniforms.wgsl, "Sequence Uniforms Snippet" diff --git a/workspaces/main/timeline.seq b/workspaces/main/timeline.seq index 6399bdf..e6ba4a5 100644 --- a/workspaces/main/timeline.seq +++ b/workspaces/main/timeline.seq @@ -3,11 +3,13 @@ SEQUENCE 0.00 0 "intro" EFFECT + RotatingCube source -> temp1 0.00 4.00 - EFFECT + GaussianBlur temp1 -> sink 0.00 4.00 + EFFECT + GaussianBlur temp1 -> temp2 0.00 4.00 + EFFECT + Scratch temp2 -> sink 0.00 4.00 SEQUENCE 4.00 0 "rotating_cube" EFFECT + RotatingCube source -> temp1 0.00 4.00 - EFFECT + Placeholder temp1 -> sink 1.00 4.00 + EFFECT + Placeholder temp1 -> temp2 1.00 4.00 + EFFECT + Scratch temp2 -> sink 1.00 4.00 SEQUENCE 8.00 0 "scene 2" # Scene2 test -- cgit v1.2.3