Files
video-shader-toys/shaders/vhs/shader.json
Aiden a0cc86f189
All checks were successful
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 2m20s
CI / Windows Release Package (push) Successful in 2m28s
description updates
2026-05-08 18:11:26 +10:00

160 lines
3.5 KiB
JSON

{
"id": "vhs",
"name": "VHS",
"description": "VHS with wiggle, smear, and YIQ-style color separation inspired by nostalgic analog references.",
"category": "Glitch",
"entryPoint": "shadeVideo",
"passes": [
{
"id": "tapeSmear",
"source": "shader.slang",
"entryPoint": "buildTapeSmear",
"inputs": [
"layerInput"
],
"output": "tapeSmear"
},
{
"id": "final",
"source": "shader.slang",
"entryPoint": "finishVhs",
"inputs": [
"tapeSmear"
],
"output": "layerOutput"
}
],
"parameters": [
{
"id": "wiggle",
"label": "Wiggle",
"type": "float",
"default": 0.03,
"min": 0,
"max": 1.5,
"step": 0.01,
"description": "Horizontal tape wobble amount."
},
{
"id": "wiggleSpeed",
"label": "Wiggle Speed",
"type": "float",
"default": 25,
"min": 0,
"max": 100,
"step": 1,
"description": "Speed of the tape wobble modulation."
},
{
"id": "smear",
"label": "Smear",
"type": "float",
"default": 1,
"min": 0,
"max": 2,
"step": 0.01,
"description": "Horizontal color/luma smear strength."
},
{
"id": "blurSamples",
"label": "Blur Samples",
"type": "float",
"default": 15,
"min": 3,
"max": 15,
"step": 1,
"description": "Number of smear samples; higher values are smoother but heavier."
},
{
"id": "vignetteAmount",
"label": "Vignette",
"type": "float",
"default": 0.18,
"min": 0,
"max": 0.6,
"step": 0.01,
"description": "Darkens and softens the frame edges."
},
{
"id": "aberrationAmount",
"label": "Aberration",
"type": "float",
"default": 0.75,
"min": 0,
"max": 3,
"step": 0.05,
"description": "Color-channel separation amount."
},
{
"id": "halationAmount",
"label": "Halation",
"type": "float",
"default": 0.12,
"min": 0,
"max": 0.5,
"step": 0.01,
"description": "Red/orange glow around bright areas."
},
{
"id": "bloomAmount",
"label": "Bloom",
"type": "float",
"default": 0.18,
"min": 0,
"max": 0.6,
"step": 0.01,
"description": "Soft glow strength from bright video regions."
},
{
"id": "fadeAmount",
"label": "Fade",
"type": "float",
"default": 0.22,
"min": 0,
"max": 0.75,
"step": 0.01,
"description": "Washed-out tape fade amount."
},
{
"id": "noiseAmount",
"label": "Noise",
"type": "float",
"default": 0.055,
"min": 0,
"max": 0.2,
"step": 0.005,
"description": "Fine grain/noise intensity."
},
{
"id": "staticAmount",
"label": "Analog Static",
"type": "float",
"default": 0.045,
"min": 0,
"max": 0.25,
"step": 0.005,
"description": "Random bright static intensity."
},
{
"id": "staticLines",
"label": "Static Lines",
"type": "float",
"default": 0.65,
"min": 0,
"max": 1.5,
"step": 0.01,
"description": "Horizontal static line visibility."
},
{
"id": "noiseSize",
"label": "Noise Size",
"type": "float",
"default": 1,
"min": 0.25,
"max": 6,
"step": 0.05,
"description": "Scale of the generated noise pattern."
}
]
}