160 lines
3.5 KiB
JSON
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."
|
|
}
|
|
]
|
|
}
|