diff options
Diffstat (limited to 'src/effects/ntsc_rgb.wgsl')
| -rw-r--r-- | src/effects/ntsc_rgb.wgsl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/effects/ntsc_rgb.wgsl b/src/effects/ntsc_rgb.wgsl new file mode 100644 index 0000000..09adbf1 --- /dev/null +++ b/src/effects/ntsc_rgb.wgsl @@ -0,0 +1,20 @@ +// NTSC post-process effect (RGB input): fisheye distortion, scanlines, color bleeding. +// Input texture is in RGB color space; converted to YIQ for NTSC processing. +#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<f32>; +@group(0) @binding(2) var<uniform> uniforms: UniformsSequenceParams; + +// RGB input: sample texture and convert to luma/chroma/phase +fn sample_ntsc_signal(uv: vec2f) -> vec4f { + let rgba = textureSample(input_texture, input_sampler, uv); + return rgba_to_luma_chroma_phase(rgba, uv.y, YSIZE); +} + +#include "render/ntsc_common" |
