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 --- doc/COMPLETED.md | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'doc') diff --git a/doc/COMPLETED.md b/doc/COMPLETED.md index d72591f..5d8603f 100644 --- a/doc/COMPLETED.md +++ b/doc/COMPLETED.md @@ -29,6 +29,15 @@ Detailed historical documents have been moved to `doc/archive/` for reference: Use `read @doc/archive/FILENAME.md` to access archived documents. +## Recently Completed (March 2026) + +- [x] **Scratch post-process effect** + - New `Scratch` effect overlays random horizontal film-scratch lines additively on top of any input buffer. + - Scratch logic extracted into reusable snippet `src/shaders/render/scratch_lines.wgsl` (registered as `"render/scratch_lines"`). Any effect can `#include "render/scratch_lines"` and call `scratch_lines(uv, resolution, time) -> f32`. Uses `hash_1f` from `math/noise`. + - Applied to first two timeline sequences ("intro", "rotating_cube") as the final post-process step. + - **Files:** `src/shaders/render/scratch_lines.wgsl` (new), `src/effects/scratch.wgsl` (new), `src/effects/scratch_effect.{h,cc}` (new), `assets.txt`, `DemoSourceLists.cmake`, `demo_effects.h`, `shaders.{h,cc}`, `test_demo_effects.cc`, `timeline.seq` + - **Tests:** 35/35 passing + ## Recently Completed (March 2, 2026) - [x] **OLA-IDCT Synthesis — click-free .spec decoding** -- cgit v1.2.3