348 lines
7.4 KiB
JSON
348 lines
7.4 KiB
JSON
{
|
|
"id": "greenscreen-key",
|
|
"name": "Greenscreen Key",
|
|
"description": "Production-style green/blue screen keyer with matte refinement, despill, edge treatment, and debug views.",
|
|
"category": "Keying",
|
|
"entryPoint": "shadeVideo",
|
|
"passes": [
|
|
{
|
|
"id": "rawMatte",
|
|
"source": "shader.slang",
|
|
"entryPoint": "buildRawMatte",
|
|
"inputs": [
|
|
"layerInput"
|
|
],
|
|
"output": "rawMatte"
|
|
},
|
|
{
|
|
"id": "refinedMatte",
|
|
"source": "shader.slang",
|
|
"entryPoint": "refineMatte",
|
|
"inputs": [
|
|
"rawMatte"
|
|
],
|
|
"output": "refinedMatte"
|
|
},
|
|
{
|
|
"id": "final",
|
|
"source": "shader.slang",
|
|
"entryPoint": "applyKey",
|
|
"inputs": [
|
|
"refinedMatte"
|
|
],
|
|
"output": "layerOutput"
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"id": "screenColor",
|
|
"label": "Screen Color",
|
|
"type": "color",
|
|
"default": [
|
|
0.15,
|
|
0.85,
|
|
0.2,
|
|
1
|
|
],
|
|
"min": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"max": [
|
|
1,
|
|
1,
|
|
1,
|
|
1
|
|
],
|
|
"step": [
|
|
0.01,
|
|
0.01,
|
|
0.01,
|
|
0.01
|
|
],
|
|
"description": "Target screen color to remove; use green or blue depending on the backdrop."
|
|
},
|
|
{
|
|
"id": "threshold",
|
|
"label": "Screen Gain",
|
|
"type": "float",
|
|
"default": 0.24,
|
|
"min": 0.01,
|
|
"max": 0.8,
|
|
"step": 0.005,
|
|
"description": "Higher values keep more foreground; lower values remove more screen."
|
|
},
|
|
{
|
|
"id": "softness",
|
|
"label": "Softness",
|
|
"type": "float",
|
|
"default": 0.16,
|
|
"min": 0.001,
|
|
"max": 0.5,
|
|
"step": 0.005,
|
|
"description": "Feathers the transition between foreground and keyed screen."
|
|
},
|
|
{
|
|
"id": "screenBalance",
|
|
"label": "Screen Balance",
|
|
"type": "float",
|
|
"default": 0.5,
|
|
"min": 0,
|
|
"max": 1,
|
|
"step": 0.005,
|
|
"description": "Balances chroma-distance keying against color-direction keying."
|
|
},
|
|
{
|
|
"id": "screenPreBlur",
|
|
"label": "Screen PreBlur",
|
|
"type": "float",
|
|
"default": 1,
|
|
"min": 0,
|
|
"max": 8,
|
|
"step": 0.1,
|
|
"description": "Blurs source color before matte generation to reduce noisy edges."
|
|
},
|
|
{
|
|
"id": "erodeDilate",
|
|
"label": "Erode/Dilate",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": -0.3,
|
|
"max": 0.3,
|
|
"step": 0.005,
|
|
"description": "Negative erodes the matte; positive expands it."
|
|
},
|
|
{
|
|
"id": "matteBlur",
|
|
"label": "Matte Blur",
|
|
"type": "float",
|
|
"default": 1.25,
|
|
"min": 0,
|
|
"max": 6,
|
|
"step": 0.1,
|
|
"description": "Softens the generated matte after keying."
|
|
},
|
|
{
|
|
"id": "matteGamma",
|
|
"label": "Matte Gamma",
|
|
"type": "float",
|
|
"default": 1,
|
|
"min": 0.25,
|
|
"max": 4,
|
|
"step": 0.01,
|
|
"description": "Shapes midtone opacity in the matte."
|
|
},
|
|
{
|
|
"id": "matteContrast",
|
|
"label": "Matte Contrast",
|
|
"type": "float",
|
|
"default": 1,
|
|
"min": 0.25,
|
|
"max": 4,
|
|
"step": 0.01,
|
|
"description": "Increases or reduces matte separation around 50 percent alpha."
|
|
},
|
|
{
|
|
"id": "blackCleanup",
|
|
"label": "Black Cleanup",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 1,
|
|
"step": 0.005,
|
|
"description": "Pushes semi-transparent dark matte areas toward transparent."
|
|
},
|
|
{
|
|
"id": "whiteCleanup",
|
|
"label": "White Cleanup",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 1,
|
|
"step": 0.005,
|
|
"description": "Pushes semi-transparent light matte areas toward opaque."
|
|
},
|
|
{
|
|
"id": "despill",
|
|
"label": "Despill",
|
|
"type": "float",
|
|
"default": 0.45,
|
|
"min": 0,
|
|
"max": 1.5,
|
|
"step": 0.01,
|
|
"description": "Removes screen-colored contamination from foreground edges."
|
|
},
|
|
{
|
|
"id": "despillBias",
|
|
"label": "Despill Bias",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": -0.5,
|
|
"max": 0.5,
|
|
"step": 0.005,
|
|
"description": "Offsets spill detection when foreground colors are close to the screen color."
|
|
},
|
|
{
|
|
"id": "spillTint",
|
|
"label": "Spill Tint",
|
|
"type": "color",
|
|
"default": [
|
|
1,
|
|
1,
|
|
1,
|
|
1
|
|
],
|
|
"min": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"max": [
|
|
1,
|
|
1,
|
|
1,
|
|
1
|
|
],
|
|
"step": [
|
|
0.01,
|
|
0.01,
|
|
0.01,
|
|
0.01
|
|
],
|
|
"description": "Tint used when neutralizing spill."
|
|
},
|
|
{
|
|
"id": "edgeRecover",
|
|
"label": "Edge Recover",
|
|
"type": "float",
|
|
"default": 0.18,
|
|
"min": 0,
|
|
"max": 1,
|
|
"step": 0.005,
|
|
"description": "Adds color recovery along semi-transparent matte edges."
|
|
},
|
|
{
|
|
"id": "edgeColor",
|
|
"label": "Edge Color",
|
|
"type": "color",
|
|
"default": [
|
|
1,
|
|
1,
|
|
1,
|
|
1
|
|
],
|
|
"min": [
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"max": [
|
|
1,
|
|
1,
|
|
1,
|
|
1
|
|
],
|
|
"step": [
|
|
0.01,
|
|
0.01,
|
|
0.01,
|
|
0.01
|
|
],
|
|
"description": "Tint applied to recovered edge detail."
|
|
},
|
|
{
|
|
"id": "clipBlack",
|
|
"label": "Clip Black",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 0.5,
|
|
"step": 0.005,
|
|
"description": "Matte values below this become transparent."
|
|
},
|
|
{
|
|
"id": "clipWhite",
|
|
"label": "Clip White",
|
|
"type": "float",
|
|
"default": 1,
|
|
"min": 0.5,
|
|
"max": 1,
|
|
"step": 0.005,
|
|
"description": "Matte values above this become opaque."
|
|
},
|
|
{
|
|
"id": "cropLeft",
|
|
"label": "Crop Left",
|
|
"description": "Trims the final matte from the left edge as a fraction of frame width.",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 0.5,
|
|
"step": 0.001
|
|
},
|
|
{
|
|
"id": "cropRight",
|
|
"label": "Crop Right",
|
|
"description": "Trims the final matte from the right edge as a fraction of frame width.",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 0.5,
|
|
"step": 0.001
|
|
},
|
|
{
|
|
"id": "cropTop",
|
|
"label": "Crop Top",
|
|
"description": "Trims the final matte from the top edge as a fraction of frame height.",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 0.5,
|
|
"step": 0.001
|
|
},
|
|
{
|
|
"id": "cropBottom",
|
|
"label": "Crop Bottom",
|
|
"description": "Trims the final matte from the bottom edge as a fraction of frame height.",
|
|
"type": "float",
|
|
"default": 0,
|
|
"min": 0,
|
|
"max": 0.5,
|
|
"step": 0.001
|
|
},
|
|
{
|
|
"id": "viewMode",
|
|
"label": "View",
|
|
"type": "enum",
|
|
"default": "composite",
|
|
"options": [
|
|
{
|
|
"value": "composite",
|
|
"label": "Composite"
|
|
},
|
|
{
|
|
"value": "matte",
|
|
"label": "Matte"
|
|
},
|
|
{
|
|
"value": "spill",
|
|
"label": "Spill"
|
|
},
|
|
{
|
|
"value": "despill",
|
|
"label": "Despill"
|
|
},
|
|
{
|
|
"value": "status",
|
|
"label": "Status"
|
|
}
|
|
],
|
|
"description": "Debug output mode for inspecting matte, spill, and despill stages."
|
|
}
|
|
]
|
|
}
|