// NTSC post-process effect (YIQ input): fisheye distortion, scanlines, color bleeding. // Input texture already stores luma/chroma/phase (e.g. from RotatingCube output). #include "sequence_uniforms" #include "render/fullscreen_uv_vs" #include "math/noise" #include "math/color" #include "math/color_c64" #include "debug/debug_print" @group(0) @binding(0) var input_sampler: sampler; @group(0) @binding(1) var input_texture: texture_2d; @group(0) @binding(2) var uniforms: UniformsSequenceParams; // YIQ input: texture already stores luma/chroma/phase — pass through directly fn sample_ntsc_signal(uv: vec2f) -> vec4f { return textureSample(input_texture, input_sampler, uv); } #include "render/ntsc_common" @fragment fn fs_main(in: VertexOutput) -> @location(0) vec4f { var col = render_ntsc(in.st); col = debug_f32(col, in.position.xy / 2., vec2f(100., 75.), uniforms.beat_time); col = debug_str(col, in.position.xy / 2., vec2f(100., 150.), vec4u(0x48656C6Cu, 0x6F000000u, 0u, 0u), 5u); return col; }