From 3547424b8c5f3884f84d16fb3f08b47965d62428 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 10 Mar 2026 20:42:32 +0100 Subject: ntsc: factor common code into snippet; add RGB and YIQ input variants - Extract shared NTSC logic into render/ntsc_common.wgsl snippet - sample_ntsc_signal() hook decouples input format from processing - ntsc_rgb.wgsl: RGB input (converts via rgba_to_luma_chroma_phase) - ntsc_yiq.wgsl: YIQ passthrough for RotatingCube output - Add NtscYiq WgslEffect thin wrapper; register both in tests handoff(Claude): NTSC refactor complete; NtscYiq ready for timeline use with RotatingCube. Co-Authored-By: Claude Sonnet 4.6 --- doc/COMPLETED.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/COMPLETED.md') diff --git a/doc/COMPLETED.md b/doc/COMPLETED.md index 2e229cb..9299a93 100644 --- a/doc/COMPLETED.md +++ b/doc/COMPLETED.md @@ -31,7 +31,7 @@ Completed task archive. See `doc/archive/` for detailed historical documents. ## March 2026 -- [x] **NTSC post-process effect** — Fisheye distortion + NTSC scan-line simulation as `WgslEffect` thin wrapper. Files: `src/effects/ntsc.wgsl`, `ntsc_effect.h`. Tests: 35/35. +- [x] **NTSC post-process effect** — Fisheye distortion + NTSC scan-line simulation as `WgslEffect` thin wrappers. Common logic in `render/ntsc_common` snippet (`sample_ntsc_signal` hook). Two variants: `ntsc_rgb.wgsl` (RGB→YIQ internally, `Ntsc`) and `ntsc_yiq.wgsl` (YIQ passthrough, `NtscYiq`, for RotatingCube output). Files: `src/effects/ntsc_rgb.wgsl`, `ntsc_yiq.wgsl`, `src/shaders/render/ntsc_common.wgsl`, `ntsc_effect.h`. Tests: 36/36. - [x] **Scratch post-process effect** — Film-scratch overlay effect. Scratch logic extracted into reusable snippet `src/shaders/render/scratch_lines.wgsl` (`#include "render/scratch_lines"`). Applied to first two timeline sequences. Tests: 35/35. -- cgit v1.2.3