description updates
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

This commit is contained in:
2026-05-08 18:11:26 +10:00
parent f322abf79a
commit a0cc86f189
31 changed files with 1231 additions and 569 deletions

View File

@@ -11,11 +11,24 @@
"type": "enum",
"default": "x1_33",
"options": [
{ "value": "x1_3", "label": "1.3x" },
{ "value": "x1_33", "label": "1.33x" },
{ "value": "x1_5", "label": "1.5x" },
{ "value": "x2_0", "label": "2x" }
]
{
"value": "x1_3",
"label": "1.3x"
},
{
"value": "x1_33",
"label": "1.33x"
},
{
"value": "x1_5",
"label": "1.5x"
},
{
"value": "x2_0",
"label": "2x"
}
],
"description": "Horizontal stretch factor matching the anamorphic lens or adapter."
},
{
"id": "framing",
@@ -23,24 +36,50 @@
"type": "enum",
"default": "fit",
"options": [
{ "value": "fit", "label": "Fit" },
{ "value": "fill", "label": "Fill" }
]
{
"value": "fit",
"label": "Fit"
},
{
"value": "fill",
"label": "Fill"
}
],
"description": "Fit preserves the whole image; Fill crops to remove borders."
},
{
"id": "pan",
"label": "Pan",
"type": "vec2",
"default": [0.0, 0.0],
"min": [-1.0, -1.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0,
0
],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Reframes the desqueezed image after fit/fill scaling."
},
{
"id": "outsideColor",
"label": "Outside Color",
"type": "color",
"default": [0.0, 0.0, 0.0, 1.0]
"default": [
0,
0,
0,
1
],
"description": "Color used where the remapped image samples outside the source frame."
}
]
}

View File

@@ -9,37 +9,41 @@
"id": "spinRotation",
"label": "Spin Rotation",
"type": "float",
"default": -2.0,
"min": -8.0,
"max": 8.0,
"step": 0.05
"default": -2,
"min": -8,
"max": 8,
"step": 0.05,
"description": "Base rotation applied to the swirl field."
},
{
"id": "spinSpeed",
"label": "Spin Speed",
"type": "float",
"default": 7.0,
"min": 0.0,
"max": 20.0,
"step": 0.1
"default": 7,
"min": 0,
"max": 20,
"step": 0.1,
"description": "How quickly the swirl pattern rotates."
},
{
"id": "spinAmount",
"label": "Spin Amount",
"type": "float",
"default": 0.25,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Amount of radial twisting in the swirl."
},
{
"id": "spinEase",
"label": "Spin Ease",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 3.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 3,
"step": 0.01,
"description": "Changes how strongly the twist falls off from the center."
},
{
"id": "contrast",
@@ -47,59 +51,94 @@
"type": "float",
"default": 3.5,
"min": 0.5,
"max": 8.0,
"step": 0.05
"max": 8,
"step": 0.05,
"description": "Adjusts separation between dark and bright areas."
},
{
"id": "lighting",
"label": "Lighting",
"type": "float",
"default": 0.4,
"min": 0.0,
"min": 0,
"max": 1.5,
"step": 0.01
"step": 0.01,
"description": "Strength of the highlight/shadow modulation."
},
{
"id": "offset",
"label": "Offset",
"type": "vec2",
"default": [0.0, 0.0],
"min": [-1.0, -1.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0,
0
],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Moves the generated field in normalized coordinates."
},
{
"id": "colour1",
"label": "Colour 1",
"type": "color",
"default": [0.871, 0.267, 0.231, 1.0]
"default": [
0.871,
0.267,
0.231,
1
],
"description": "Primary warm swirl color."
},
{
"id": "colour2",
"label": "Colour 2",
"type": "color",
"default": [0.0, 0.42, 0.706, 1.0]
"default": [
0,
0.42,
0.706,
1
],
"description": "Secondary cool swirl color."
},
{
"id": "colour3",
"label": "Colour 3",
"type": "color",
"default": [0.086, 0.137, 0.145, 1.0]
"default": [
0.086,
0.137,
0.145,
1
],
"description": "Dark base color in the swirl."
},
{
"id": "isRotate",
"label": "Rotate Field",
"type": "bool",
"default": false
"default": false,
"description": "Rotates the whole generated field over time."
},
{
"id": "sourceMix",
"label": "Source Mix",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends the generated effect with the incoming video."
}
]
}

View File

@@ -9,7 +9,8 @@
"id": "badToggle",
"label": "Bad Toggle",
"type": "boolean",
"default": true
"default": true,
"description": "Intentionally unsupported parameter type used to test shader error handling."
}
]
}

View File

@@ -9,55 +9,67 @@
"id": "showThirds",
"label": "Rule of Thirds",
"type": "bool",
"default": true
"default": true,
"description": "Shows vertical and horizontal thirds lines."
},
{
"id": "showCrosshair",
"label": "Center Crosshair",
"type": "bool",
"default": true
"default": true,
"description": "Shows a center crosshair for lens/framing alignment."
},
{
"id": "lineColor",
"label": "Line Color",
"type": "color",
"default": [1.0, 1.0, 1.0, 1.0]
"default": [
1,
1,
1,
1
],
"description": "Color used for guide lines and marks."
},
{
"id": "lineOpacity",
"label": "Line Opacity",
"type": "float",
"default": 0.65,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Overall visibility of the guide lines."
},
{
"id": "lineThicknessPixels",
"label": "Line Thickness",
"type": "float",
"default": 2.0,
"default": 2,
"min": 0.5,
"max": 12.0,
"step": 0.1
"max": 12,
"step": 0.1,
"description": "Guide line width in output pixels."
},
{
"id": "crosshairSizePixels",
"label": "Crosshair Size",
"type": "float",
"default": 54.0,
"min": 8.0,
"max": 240.0,
"step": 1.0
"default": 54,
"min": 8,
"max": 240,
"step": 1,
"description": "Length of each crosshair arm in output pixels."
},
{
"id": "crosshairGapPixels",
"label": "Crosshair Gap",
"type": "float",
"default": 10.0,
"min": 0.0,
"max": 80.0,
"step": 1.0
"default": 10,
"min": 0,
"max": 80,
"step": 1,
"description": "Empty gap around the exact frame center."
}
]
}

View File

@@ -15,36 +15,52 @@
"label": "Amount",
"type": "float",
"default": 0.45,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Strength of the blocky temporal smear."
},
{
"id": "blockCount",
"label": "Block Count",
"type": "vec2",
"default": [32.0, 18.0],
"min": [2.0, 2.0],
"max": [160.0, 120.0],
"step": [1.0, 1.0]
"default": [
32,
18
],
"min": [
2,
2
],
"max": [
160,
120
],
"step": [
1,
1
],
"description": "Number of glitch blocks across X and Y."
},
{
"id": "tearAmount",
"label": "Tear",
"type": "float",
"default": 0.18,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Horizontal scanline tearing intensity."
},
{
"id": "chromaShift",
"label": "Chroma Shift",
"type": "float",
"default": 1.8,
"min": 0.0,
"max": 12.0,
"step": 0.1
"min": 0,
"max": 12,
"step": 0.1,
"description": "Separate color-channel offset in pixels."
}
]
}

View File

@@ -18,7 +18,8 @@
"default": 0.28,
"min": 0.12,
"max": 0.5,
"step": 0.01
"step": 0.01,
"description": "Logo size relative to the frame."
},
{
"id": "bounceSpeed",
@@ -27,34 +28,38 @@
"default": 0.22,
"min": 0.02,
"max": 0.8,
"step": 0.01
"step": 0.01,
"description": "How fast the logo moves between edge hits."
},
{
"id": "edgePadding",
"label": "Edge Padding",
"type": "float",
"default": 0.018,
"min": 0.0,
"min": 0,
"max": 0.08,
"step": 0.001
"step": 0.001,
"description": "Inset distance from the frame edges."
},
{
"id": "glowAmount",
"label": "Glow",
"type": "float",
"default": 0.18,
"min": 0.0,
"min": 0,
"max": 0.75,
"step": 0.01
"step": 0.01,
"description": "Adds a soft colored glow around the logo."
},
{
"id": "baseAlpha",
"label": "Alpha",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.05,
"max": 1.0,
"step": 0.01
"max": 1,
"step": 0.01,
"description": "Overall opacity of the overlay."
}
]
}

View File

@@ -9,10 +9,11 @@
"id": "speed",
"label": "Speed",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 4.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 4,
"step": 0.01,
"description": "Animation speed multiplier; set to 0 to pause motion."
},
{
"id": "depth",
@@ -20,65 +21,95 @@
"type": "float",
"default": 2.5,
"min": 0.2,
"max": 8.0,
"step": 0.01
"max": 8,
"step": 0.01,
"description": "Raymarch depth through the ether volume."
},
{
"id": "density",
"label": "Density",
"type": "float",
"default": 0.7,
"min": 0.0,
"max": 2.0,
"step": 0.01
"min": 0,
"max": 2,
"step": 0.01,
"description": "Density of the volumetric strands."
},
{
"id": "brightness",
"label": "Brightness",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 3.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 3,
"step": 0.01,
"description": "Adjusts the generated effect brightness."
},
{
"id": "contrast",
"label": "Contrast",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.25,
"max": 3.0,
"step": 0.01
"max": 3,
"step": 0.01,
"description": "Adjusts separation between dark and bright areas."
},
{
"id": "offset",
"label": "Offset",
"type": "vec2",
"default": [0.9, 0.5],
"min": [0.0, 0.0],
"max": [2.0, 2.0],
"step": [0.001, 0.001]
"default": [
0.9,
0.5
],
"min": [
0,
0
],
"max": [
2,
2
],
"step": [
0.001,
0.001
],
"description": "Moves the generated field in normalized coordinates."
},
{
"id": "baseColor",
"label": "Base Color",
"type": "color",
"default": [0.1, 0.3, 0.4, 1.0]
"default": [
0.1,
0.3,
0.4,
1
],
"description": "Low-energy color used in the generated field."
},
{
"id": "energyColor",
"label": "Energy Color",
"type": "color",
"default": [1.0, 0.5, 0.6, 1.0]
"default": [
1,
0.5,
0.6,
1
],
"description": "High-energy color used in the generated field."
},
{
"id": "sourceMix",
"label": "Source Mix",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends the generated effect with the incoming video."
}
]
}

View File

@@ -9,34 +9,38 @@
"id": "blendAmount",
"label": "Blend",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Mix amount for the processed result."
},
{
"id": "showLuma",
"label": "Show Luma",
"type": "bool",
"default": false
"default": false,
"description": "Shows grayscale luminance before applying false-color mapping."
},
{
"id": "lift",
"label": "Lift",
"type": "float",
"default": 0.0,
"default": 0,
"min": -0.25,
"max": 0.25,
"step": 0.001
"step": 0.001,
"description": "Offsets luminance before false-color mapping."
},
{
"id": "gain",
"label": "Gain",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.25,
"max": 2.0,
"step": 0.01
"max": 2,
"step": 0.01,
"description": "Scales luminance before false-color mapping."
}
]
}

View File

@@ -9,55 +9,85 @@
"id": "lensFovDegrees",
"label": "Lens FOV",
"type": "float",
"default": 190.0,
"min": 1.0,
"max": 220.0,
"step": 0.1
"default": 190,
"min": 1,
"max": 220,
"step": 0.1,
"description": "Actual fisheye lens field of view in degrees."
},
{
"id": "center",
"label": "Optical Center",
"type": "vec2",
"default": [0.5, 0.5],
"min": [0.0, 0.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0.5,
0.5
],
"min": [
0,
0
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Normalized position in the frame, where 0.5, 0.5 is center."
},
{
"id": "radius",
"label": "Fisheye Radius",
"type": "vec2",
"default": [0.5, 0.8889],
"min": [0.001, 0.001],
"max": [2.0, 2.0],
"step": [0.001, 0.001]
"default": [
0.5,
0.8889
],
"min": [
0.001,
0.001
],
"max": [
2,
2
],
"step": [
0.001,
0.001
],
"description": "Normalized fisheye radius; adjust X/Y when the image is cropped or squeezed."
},
{
"id": "yawDegrees",
"label": "Yaw",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Rotates the virtual view horizontally."
},
{
"id": "pitchDegrees",
"label": "Pitch",
"type": "float",
"default": 0.0,
"min": -120.0,
"max": 120.0,
"step": 0.1
"default": 0,
"min": -120,
"max": 120,
"step": 0.1,
"description": "Rotates the virtual view vertically."
},
{
"id": "rollDegrees",
"label": "Roll",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Live roll rotation around the viewing axis."
},
{
"id": "fisheyeModel",
@@ -65,35 +95,56 @@
"type": "enum",
"default": "equidistant",
"options": [
{ "value": "equidistant", "label": "Equidistant" },
{ "value": "equisolid", "label": "Equisolid" },
{ "value": "stereographic", "label": "Stereographic" },
{ "value": "orthographic", "label": "Orthographic" }
]
{
"value": "equidistant",
"label": "Equidistant"
},
{
"value": "equisolid",
"label": "Equisolid"
},
{
"value": "stereographic",
"label": "Stereographic"
},
{
"value": "orthographic",
"label": "Orthographic"
}
],
"description": "Projection model used by the physical fisheye lens."
},
{
"id": "edgeFill",
"label": "Edge Fill",
"type": "float",
"default": 0.06,
"min": 0.0,
"min": 0,
"max": 0.3,
"step": 0.001
"step": 0.001,
"description": "Extends edge samples outward to cover small missing areas."
},
{
"id": "edgeBlur",
"label": "Edge Blur",
"type": "float",
"default": 0.018,
"min": 0.0,
"min": 0,
"max": 0.12,
"step": 0.001
"step": 0.001,
"description": "Softens the dilated edge fill."
},
{
"id": "outsideColor",
"label": "Outside Color",
"type": "color",
"default": [0.0, 0.0, 0.0, 1.0]
"default": [
0,
0,
0,
1
],
"description": "Color used where the remapped image samples outside the source frame."
}
]
}

View File

@@ -9,91 +9,125 @@
"id": "lensFovDegrees",
"label": "Lens FOV",
"type": "float",
"default": 190.0,
"min": 1.0,
"max": 220.0,
"step": 0.1
"default": 190,
"min": 1,
"max": 220,
"step": 0.1,
"description": "Actual fisheye lens field of view in degrees."
},
{
"id": "center",
"label": "Optical Center",
"type": "vec2",
"default": [0.5, 0.5],
"min": [0.0, 0.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0.5,
0.5
],
"min": [
0,
0
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Normalized position in the frame, where 0.5, 0.5 is center."
},
{
"id": "radius",
"label": "Fisheye Radius",
"type": "vec2",
"default": [0.5, 0.885],
"min": [0.001, 0.001],
"max": [2.0, 2.0],
"step": [0.001, 0.001]
"default": [
0.5,
0.885
],
"min": [
0.001,
0.001
],
"max": [
2,
2
],
"step": [
0.001,
0.001
],
"description": "Normalized fisheye radius; adjust X/Y when the image is cropped or squeezed."
},
{
"id": "virtualFovDegrees",
"label": "Virtual FOV",
"type": "float",
"default": 75.0,
"min": 1.0,
"max": 175.0,
"step": 0.1
"default": 75,
"min": 1,
"max": 175,
"step": 0.1,
"description": "Field of view of the generated virtual camera."
},
{
"id": "basePanDegrees",
"label": "Base Pan",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Permanent horizontal alignment offset before live pan."
},
{
"id": "baseTiltDegrees",
"label": "Base Tilt",
"type": "float",
"default": 0.0,
"min": -120.0,
"max": 120.0,
"step": 0.1
"default": 0,
"min": -120,
"max": 120,
"step": 0.1,
"description": "Permanent vertical alignment offset before live tilt."
},
{
"id": "baseRollDegrees",
"label": "Base Roll",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Permanent roll alignment offset before live roll."
},
{
"id": "panDegrees",
"label": "Pan",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Live horizontal view rotation."
},
{
"id": "tiltDegrees",
"label": "Tilt",
"type": "float",
"default": 0.0,
"min": -120.0,
"max": 120.0,
"step": 0.1
"default": 0,
"min": -120,
"max": 120,
"step": 0.1,
"description": "Live vertical view rotation."
},
{
"id": "rollDegrees",
"label": "Roll",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Live roll rotation around the viewing axis."
},
{
"id": "fisheyeModel",
@@ -101,11 +135,24 @@
"type": "enum",
"default": "equidistant",
"options": [
{ "value": "equidistant", "label": "Equidistant" },
{ "value": "equisolid", "label": "Equisolid" },
{ "value": "stereographic", "label": "Stereographic" },
{ "value": "orthographic", "label": "Orthographic" }
]
{
"value": "equidistant",
"label": "Equidistant"
},
{
"value": "equisolid",
"label": "Equisolid"
},
{
"value": "stereographic",
"label": "Stereographic"
},
{
"value": "orthographic",
"label": "Orthographic"
}
],
"description": "Projection model used by the physical fisheye lens."
},
{
"id": "outputProjection",
@@ -113,15 +160,28 @@
"type": "enum",
"default": "rectilinear",
"options": [
{ "value": "rectilinear", "label": "Rectilinear" },
{ "value": "cylindrical", "label": "Cylindrical" }
]
{
"value": "rectilinear",
"label": "Rectilinear"
},
{
"value": "cylindrical",
"label": "Cylindrical"
}
],
"description": "Chooses rectilinear perspective or cylindrical reprojection."
},
{
"id": "outsideColor",
"label": "Outside Color",
"type": "color",
"default": [0.0, 0.0, 0.0, 1.0]
"default": [
0,
0,
0,
1
],
"description": "Color used where the remapped image samples outside the source frame."
}
]
}

View File

@@ -9,14 +9,18 @@
"id": "horizontal",
"source": "shader.slang",
"entryPoint": "blurHorizontal",
"inputs": ["layerInput"],
"inputs": [
"layerInput"
],
"output": "blurHorizontal"
},
{
"id": "vertical",
"source": "shader.slang",
"entryPoint": "blurVertical",
"inputs": ["blurHorizontal"],
"inputs": [
"blurHorizontal"
],
"output": "layerOutput"
}
],
@@ -25,28 +29,31 @@
"id": "radius",
"label": "Radius",
"type": "float",
"default": 2.0,
"min": 0.0,
"max": 8.0,
"step": 0.1
"default": 2,
"min": 0,
"max": 8,
"step": 0.1,
"description": "Blur radius in pixels for each separable pass."
},
{
"id": "strength",
"label": "Strength",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends between the original and blurred result."
},
{
"id": "samples",
"label": "Samples",
"type": "float",
"default": 2.0,
"min": 0.0,
"max": 25.0,
"step": 1.0
"default": 2,
"min": 0,
"max": 25,
"step": 1,
"description": "Number of taps per direction; higher values cost more GPU time."
}
]
}

View File

@@ -9,21 +9,27 @@
"id": "rawMatte",
"source": "shader.slang",
"entryPoint": "buildRawMatte",
"inputs": ["layerInput"],
"inputs": [
"layerInput"
],
"output": "rawMatte"
},
{
"id": "refinedMatte",
"source": "shader.slang",
"entryPoint": "refineMatte",
"inputs": ["rawMatte"],
"inputs": [
"rawMatte"
],
"output": "refinedMatte"
},
{
"id": "final",
"source": "shader.slang",
"entryPoint": "applyKey",
"inputs": ["refinedMatte"],
"inputs": [
"refinedMatte"
],
"output": "layerOutput"
}
],
@@ -32,10 +38,31 @@
"id": "screenColor",
"label": "Screen Color",
"type": "color",
"default": [0.15, 0.85, 0.2, 1.0],
"min": [0.0, 0.0, 0.0, 0.0],
"max": [1.0, 1.0, 1.0, 1.0],
"step": [0.01, 0.01, 0.01, 0.01]
"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",
@@ -44,7 +71,8 @@
"default": 0.24,
"min": 0.01,
"max": 0.8,
"step": 0.005
"step": 0.005,
"description": "Higher values keep more foreground; lower values remove more screen."
},
{
"id": "softness",
@@ -53,150 +81,206 @@
"default": 0.16,
"min": 0.001,
"max": 0.5,
"step": 0.005
"step": 0.005,
"description": "Feathers the transition between foreground and keyed screen."
},
{
"id": "screenBalance",
"label": "Screen Balance",
"type": "float",
"default": 0.5,
"min": 0.0,
"max": 1.0,
"step": 0.005
"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.0,
"min": 0.0,
"max": 8.0,
"step": 0.1
"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.0,
"default": 0,
"min": -0.3,
"max": 0.3,
"step": 0.005
"step": 0.005,
"description": "Negative erodes the matte; positive expands it."
},
{
"id": "matteBlur",
"label": "Matte Blur",
"type": "float",
"default": 1.25,
"min": 0.0,
"max": 6.0,
"step": 0.1
"min": 0,
"max": 6,
"step": 0.1,
"description": "Softens the generated matte after keying."
},
{
"id": "matteGamma",
"label": "Matte Gamma",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.25,
"max": 4.0,
"step": 0.01
"max": 4,
"step": 0.01,
"description": "Shapes midtone opacity in the matte."
},
{
"id": "matteContrast",
"label": "Matte Contrast",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.25,
"max": 4.0,
"step": 0.01
"max": 4,
"step": 0.01,
"description": "Increases or reduces matte separation around 50 percent alpha."
},
{
"id": "blackCleanup",
"label": "Black Cleanup",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.005
"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.0,
"min": 0.0,
"max": 1.0,
"step": 0.005
"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.0,
"min": 0,
"max": 1.5,
"step": 0.01
"step": 0.01,
"description": "Removes screen-colored contamination from foreground edges."
},
{
"id": "despillBias",
"label": "Despill Bias",
"type": "float",
"default": 0.0,
"default": 0,
"min": -0.5,
"max": 0.5,
"step": 0.005
"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.0, 1.0, 1.0, 1.0],
"min": [0.0, 0.0, 0.0, 0.0],
"max": [1.0, 1.0, 1.0, 1.0],
"step": [0.01, 0.01, 0.01, 0.01]
"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.0,
"max": 1.0,
"step": 0.005
"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.0, 1.0, 1.0, 1.0],
"min": [0.0, 0.0, 0.0, 0.0],
"max": [1.0, 1.0, 1.0, 1.0],
"step": [0.01, 0.01, 0.01, 0.01]
"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.0,
"min": 0.0,
"default": 0,
"min": 0,
"max": 0.5,
"step": 0.005
"step": 0.005,
"description": "Matte values below this become transparent."
},
{
"id": "clipWhite",
"label": "Clip White",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.5,
"max": 1.0,
"step": 0.005
"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.0,
"min": 0.0,
"default": 0,
"min": 0,
"max": 0.5,
"step": 0.001
},
@@ -205,8 +289,8 @@
"label": "Crop Right",
"description": "Trims the final matte from the right edge as a fraction of frame width.",
"type": "float",
"default": 0.0,
"min": 0.0,
"default": 0,
"min": 0,
"max": 0.5,
"step": 0.001
},
@@ -215,8 +299,8 @@
"label": "Crop Top",
"description": "Trims the final matte from the top edge as a fraction of frame height.",
"type": "float",
"default": 0.0,
"min": 0.0,
"default": 0,
"min": 0,
"max": 0.5,
"step": 0.001
},
@@ -225,8 +309,8 @@
"label": "Crop Bottom",
"description": "Trims the final matte from the bottom edge as a fraction of frame height.",
"type": "float",
"default": 0.0,
"min": 0.0,
"default": 0,
"min": 0,
"max": 0.5,
"step": 0.001
},
@@ -236,12 +320,28 @@
"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" }
]
{
"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."
}
]
}

View File

@@ -9,46 +9,51 @@
"id": "speed",
"label": "Speed",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 4.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 4,
"step": 0.01,
"description": "Animation speed multiplier; set to 0 to pause motion."
},
{
"id": "scale",
"label": "Scale",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.25,
"max": 3.0,
"step": 0.01
"max": 3,
"step": 0.01,
"description": "Overall size of the effect in the frame."
},
{
"id": "raySteps",
"label": "Ray Steps",
"type": "float",
"default": 77.0,
"min": 8.0,
"max": 77.0,
"step": 1.0
"default": 77,
"min": 8,
"max": 77,
"step": 1,
"description": "Raymarch iteration count; higher values increase detail and GPU cost."
},
{
"id": "intensity",
"label": "Intensity",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.1,
"max": 4.0,
"step": 0.01
"max": 4,
"step": 0.01,
"description": "Overall brightness of the accumulated raymarched light."
},
{
"id": "sourceMix",
"label": "Source Mix",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends the generated effect with the incoming video."
}
]
}

View File

@@ -9,34 +9,59 @@
"id": "lift",
"label": "Lift",
"type": "color",
"default": [0.5, 0.5, 0.5, 1.0]
"default": [
0.5,
0.5,
0.5,
1
],
"description": "Adds color mostly to shadows."
},
{
"id": "gamma",
"label": "Gamma",
"type": "color",
"default": [0.5, 0.5, 0.5, 1.0]
"default": [
0.5,
0.5,
0.5,
1
],
"description": "Balances midtone color response."
},
{
"id": "gain",
"label": "Gain",
"type": "color",
"default": [0.5, 0.5, 0.5, 1.0]
"default": [
0.5,
0.5,
0.5,
1
],
"description": "Scales highlights and overall channel intensity."
},
{
"id": "offset",
"label": "Offset",
"type": "color",
"default": [0.5, 0.5, 0.5, 1.0]
"default": [
0.5,
0.5,
0.5,
1
],
"description": "Adds a uniform color offset after lift/gamma/gain."
},
{
"id": "strength",
"label": "Strength",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends the grade with the original image."
}
]
}

View File

@@ -15,43 +15,48 @@
"id": "lutStrength",
"label": "LUT Strength",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends between the original image and the LUT result."
},
{
"id": "preExposure",
"label": "Pre Exposure",
"type": "float",
"default": 0.0,
"min": -4.0,
"max": 4.0,
"step": 0.01
"default": 0,
"min": -4,
"max": 4,
"step": 0.01,
"description": "Exposure offset applied before the LUT lookup."
},
{
"id": "postContrast",
"label": "Post Contrast",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 2.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 2,
"step": 0.01,
"description": "Contrast adjustment applied after the LUT lookup."
},
{
"id": "ditherAmount",
"label": "Output Dither",
"type": "float",
"default": 0.5,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Adds subtle output dither to reduce visible banding."
},
{
"id": "clampInput",
"label": "Clamp Input",
"type": "bool",
"default": true
"default": true,
"description": "Clamps colors to 0-1 before the LUT lookup."
}
]
}

View File

@@ -9,14 +9,18 @@
"id": "mask",
"source": "shader.slang",
"entryPoint": "buildMask",
"inputs": ["layerInput"],
"inputs": [
"layerInput"
],
"output": "generatedMask"
},
{
"id": "final",
"source": "shader.slang",
"entryPoint": "applyMask",
"inputs": ["generatedMask"],
"inputs": [
"generatedMask"
],
"output": "layerOutput"
}
],
@@ -25,19 +29,21 @@
"id": "intensity",
"label": "Intensity",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Opacity of the second-pass diagnostic overlay."
},
{
"id": "scale",
"label": "Scale",
"type": "float",
"default": 10.0,
"min": 2.0,
"max": 32.0,
"step": 1.0
"default": 10,
"min": 2,
"max": 32,
"step": 1,
"description": "Size of the generated test pattern."
}
]
}

View File

@@ -9,25 +9,45 @@
"id": "pixelCount",
"label": "Pixel Count",
"type": "vec2",
"default": [96.0, 54.0],
"min": [2.0, 2.0],
"max": [1920.0, 1080.0],
"step": [1.0, 1.0]
"default": [
96,
54
],
"min": [
2,
2
],
"max": [
1920,
1080
],
"step": [
1,
1
],
"description": "Number of pixel blocks across X and Y."
},
{
"id": "gridAmount",
"label": "Grid",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Visibility of the block grid lines."
},
{
"id": "gridColor",
"label": "Grid Color",
"type": "color",
"default": [0.0, 0.0, 0.0, 1.0]
"default": [
0,
0,
0,
1
],
"description": "Color used for the pixel grid."
}
]
}

View File

@@ -5,32 +5,58 @@
"category": "Scopes & Guides",
"entryPoint": "shadeVideo",
"parameters": [
{ "id": "showActionSafe", "label": "Action Safe", "type": "bool", "default": true },
{ "id": "showTitleSafe", "label": "Title Safe", "type": "bool", "default": true },
{ "id": "showCenter", "label": "Center Marks", "type": "bool", "default": true },
{
"id": "showActionSafe",
"label": "Action Safe",
"type": "bool",
"default": true,
"description": "Shows the broadcast action-safe rectangle."
},
{
"id": "showTitleSafe",
"label": "Title Safe",
"type": "bool",
"default": true,
"description": "Shows the broadcast title-safe rectangle."
},
{
"id": "showCenter",
"label": "Center Marks",
"type": "bool",
"default": true,
"description": "Shows center marks for alignment."
},
{
"id": "lineColor",
"label": "Line Color",
"type": "color",
"default": [1.0, 1.0, 1.0, 1.0]
"default": [
1,
1,
1,
1
],
"description": "Color used for guide lines and marks."
},
{
"id": "lineOpacity",
"label": "Line Opacity",
"type": "float",
"default": 0.65,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Overall visibility of the guide lines."
},
{
"id": "lineThicknessPixels",
"label": "Line Thickness",
"type": "float",
"default": 2.0,
"default": 2,
"min": 0.5,
"max": 12.0,
"step": 0.1
"max": 12,
"step": 0.1,
"description": "Guide line width in output pixels."
},
{
"id": "aspectMode",
@@ -38,20 +64,34 @@
"type": "enum",
"default": "none",
"options": [
{ "value": "none", "label": "None" },
{ "value": "239", "label": "2.39:1" },
{ "value": "185", "label": "1.85:1" },
{ "value": "square", "label": "1:1" }
]
{
"value": "none",
"label": "None"
},
{
"value": "239",
"label": "2.39:1"
},
{
"value": "185",
"label": "1.85:1"
},
{
"value": "square",
"label": "1:1"
}
],
"description": "Adds an optional framing matte for common delivery ratios."
},
{
"id": "matteOpacity",
"label": "Matte Opacity",
"type": "float",
"default": 0.35,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Opacity of the aspect-ratio matte outside the active image."
}
]
}

View File

@@ -9,10 +9,11 @@
"id": "speed",
"label": "Speed",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 4.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 4,
"step": 0.01,
"description": "Animation speed multiplier; set to 0 to pause motion."
},
{
"id": "scale",
@@ -21,16 +22,18 @@
"default": 0.7,
"min": 0.25,
"max": 1.5,
"step": 0.01
"step": 0.01,
"description": "Overall size of the effect in the frame."
},
{
"id": "strength",
"label": "Gravity",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.1,
"max": 3.0,
"step": 0.01
"max": 3,
"step": 0.01,
"description": "Strength of the lensing/gravity distortion."
},
{
"id": "ringRadius",
@@ -39,7 +42,8 @@
"default": 0.7,
"min": 0.2,
"max": 1.4,
"step": 0.01
"step": 0.01,
"description": "Radius of the bright accretion ring."
},
{
"id": "tightness",
@@ -47,44 +51,61 @@
"type": "float",
"default": 1.35,
"min": 0.5,
"max": 3.0,
"step": 0.01
"max": 3,
"step": 0.01,
"description": "Concentration of the ring and spiral detail."
},
{
"id": "brightness",
"label": "Brightness",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.1,
"max": 4.0,
"step": 0.01
"max": 4,
"step": 0.01,
"description": "Adjusts the generated effect brightness."
},
{
"id": "colorShift",
"label": "Color Shift",
"type": "float",
"default": 1.0,
"min": -2.0,
"max": 2.0,
"step": 0.01
"default": 1,
"min": -2,
"max": 2,
"step": 0.01,
"description": "Cycles the generated color palette."
},
{
"id": "center",
"label": "Center",
"type": "vec2",
"default": [0.0, 0.0],
"min": [-1.0, -1.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0,
0
],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Moves the black hole center in normalized coordinates."
},
{
"id": "sourceMix",
"label": "Source Mix",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends the generated effect with the incoming video."
}
]
}

View File

@@ -9,7 +9,13 @@
"id": "fillColor",
"label": "Fill",
"type": "color",
"default": [1.0, 1.0, 1.0, 1.0]
"default": [
1,
1,
1,
1
],
"description": "Frame fill color; alpha is preserved for key-capable outputs."
}
]
}

View File

@@ -15,33 +15,42 @@
"label": "Echo Amount",
"type": "float",
"default": 0.55,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Overall visibility of the temporal echoes."
},
{
"id": "decay",
"label": "Decay",
"type": "float",
"default": 0.72,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "How quickly older temporal echoes fade away."
},
{
"id": "frameStride",
"label": "Frame Stride",
"type": "float",
"default": 2.0,
"min": 1.0,
"max": 6.0,
"step": 1.0
"default": 2,
"min": 1,
"max": 6,
"step": 1,
"description": "Number of frames skipped between each echo sample."
},
{
"id": "echoTint",
"label": "Echo Tint",
"type": "color",
"default": [0.65, 0.85, 1.0, 1.0]
"default": [
0.65,
0.85,
1,
1
],
"description": "Tint applied to older echo frames."
}
]
}

View File

@@ -15,18 +15,20 @@
"label": "Current Mix",
"type": "float",
"default": 0.72,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Contribution of the current frame in the temporal blend."
},
{
"id": "trailMix",
"label": "Trail Mix",
"type": "float",
"default": 0.28,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Contribution of older frames in the temporal blend."
}
]
}

View File

@@ -14,19 +14,21 @@
"id": "holdFrames",
"label": "Hold Frames",
"type": "float",
"default": 3.0,
"min": 0.0,
"max": 7.0,
"step": 0.1
"default": 3,
"min": 0,
"max": 7,
"step": 0.1,
"description": "How many previous frames to hold for the low-FPS effect."
},
{
"id": "blendAmount",
"label": "Blend",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Mix amount for the processed result."
}
]
}

View File

@@ -17,16 +17,30 @@
"type": "text",
"default": "VIDEO SHADER",
"font": "roboto",
"maxLength": 64
"maxLength": 64,
"description": "Text string rendered into the SDF text texture."
},
{
"id": "position",
"label": "Position",
"type": "vec2",
"default": [0.08, 0.12],
"min": [0.0, 0.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0.08,
0.12
],
"min": [
0,
0
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Normalized placement of the text block in the frame."
},
{
"id": "scale",
@@ -35,37 +49,52 @@
"default": 0.42,
"min": 0.1,
"max": 3,
"step": 0.01
"step": 0.01,
"description": "Text size multiplier."
},
{
"id": "fillColor",
"label": "Fill",
"type": "color",
"default": [1.0, 1.0, 1.0, 1.0]
"default": [
1,
1,
1,
1
],
"description": "Main text fill color and alpha."
},
{
"id": "outlineColor",
"label": "Outline",
"type": "color",
"default": [0.0, 0.0, 0.0, 0.8]
"default": [
0,
0,
0,
0.8
],
"description": "Text outline color and alpha."
},
{
"id": "outlineWidth",
"label": "Outline Width",
"type": "float",
"default": 0.12,
"min": 0.0,
"min": 0,
"max": 0.5,
"step": 0.01
"step": 0.01,
"description": "Width of the SDF outline around the text."
},
{
"id": "softness",
"label": "Softness",
"type": "float",
"default": 0.04,
"min": 0.0,
"min": 0,
"max": 0.3,
"step": 0.01
"step": 0.01,
"description": "Smoothness of the SDF text edge."
}
]
}

View File

@@ -8,25 +8,40 @@
{
"id": "drop",
"label": "Drop",
"type": "trigger"
"type": "trigger",
"description": "Momentary trigger that starts a new ripple from the selected center."
},
{
"id": "center",
"label": "Center",
"type": "vec2",
"default": [0.5, 0.5],
"min": [0.0, 0.0],
"max": [1.0, 1.0],
"step": [0.01, 0.01]
"default": [
0.5,
0.5
],
"min": [
0,
0
],
"max": [
1,
1
],
"step": [
0.01,
0.01
],
"description": "Origin of the triggered ripple in normalized coordinates."
},
{
"id": "strength",
"label": "Strength",
"type": "float",
"default": 0.12,
"min": 0.0,
"min": 0,
"max": 0.3,
"step": 0.001
"step": 0.001,
"description": "Amount of UV distortion caused by the ripple."
},
{
"id": "speed",
@@ -34,8 +49,9 @@
"type": "float",
"default": 0.3,
"min": 0.3,
"max": 5.0,
"step": 0.01
"max": 5,
"step": 0.01,
"description": "How long the ripple takes to expand and fade."
},
{
"id": "width",
@@ -44,7 +60,8 @@
"default": 0.09,
"min": 0.01,
"max": 0.25,
"step": 0.001
"step": 0.001,
"description": "Thickness of the travelling ripple ring."
},
{
"id": "damping",
@@ -52,8 +69,9 @@
"type": "float",
"default": 0.25,
"min": 0.05,
"max": 3.0,
"step": 0.05
"max": 3,
"step": 0.05,
"description": "How quickly the ripple fades as it expands."
}
]
}

View File

@@ -9,7 +9,8 @@
"id": "showLocalTime",
"label": "Show Local Time",
"type": "bool",
"default": true
"default": true,
"description": "Uses the PC UTC offset for local time; disable for pure UTC."
},
{
"id": "clockScale",
@@ -18,19 +19,32 @@
"default": 0.7,
"min": 0.25,
"max": 0.95,
"step": 0.01
"step": 0.01,
"description": "Size of the clock face relative to the frame."
},
{
"id": "faceColor",
"label": "Face Color",
"type": "color",
"default": [0.03, 0.04, 0.05, 0.82]
"default": [
0.03,
0.04,
0.05,
0.82
],
"description": "Clock face fill color and alpha."
},
{
"id": "accentColor",
"label": "Accent Color",
"type": "color",
"default": [0.1, 0.62, 0.86, 1.0]
"default": [
0.1,
0.62,
0.86,
1
],
"description": "Accent color for the seconds hand and glow."
}
]
}

View File

@@ -9,14 +9,18 @@
"id": "tapeSmear",
"source": "shader.slang",
"entryPoint": "buildTapeSmear",
"inputs": ["layerInput"],
"inputs": [
"layerInput"
],
"output": "tapeSmear"
},
{
"id": "final",
"source": "shader.slang",
"entryPoint": "finishVhs",
"inputs": ["tapeSmear"],
"inputs": [
"tapeSmear"
],
"output": "layerOutput"
}
],
@@ -26,117 +30,130 @@
"label": "Wiggle",
"type": "float",
"default": 0.03,
"min": 0.0,
"min": 0,
"max": 1.5,
"step": 0.01
"step": 0.01,
"description": "Horizontal tape wobble amount."
},
{
"id": "wiggleSpeed",
"label": "Wiggle Speed",
"type": "float",
"default": 25.0,
"min": 0.0,
"max": 100.0,
"step": 1.0
"default": 25,
"min": 0,
"max": 100,
"step": 1,
"description": "Speed of the tape wobble modulation."
},
{
"id": "smear",
"label": "Smear",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 2.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 2,
"step": 0.01,
"description": "Horizontal color/luma smear strength."
},
{
"id": "blurSamples",
"label": "Blur Samples",
"type": "float",
"default": 15.0,
"min": 3.0,
"max": 15.0,
"step": 1.0
"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.0,
"min": 0,
"max": 0.6,
"step": 0.01
"step": 0.01,
"description": "Darkens and softens the frame edges."
},
{
"id": "aberrationAmount",
"label": "Aberration",
"type": "float",
"default": 0.75,
"min": 0.0,
"max": 3.0,
"step": 0.05
"min": 0,
"max": 3,
"step": 0.05,
"description": "Color-channel separation amount."
},
{
"id": "halationAmount",
"label": "Halation",
"type": "float",
"default": 0.12,
"min": 0.0,
"min": 0,
"max": 0.5,
"step": 0.01
"step": 0.01,
"description": "Red/orange glow around bright areas."
},
{
"id": "bloomAmount",
"label": "Bloom",
"type": "float",
"default": 0.18,
"min": 0.0,
"min": 0,
"max": 0.6,
"step": 0.01
"step": 0.01,
"description": "Soft glow strength from bright video regions."
},
{
"id": "fadeAmount",
"label": "Fade",
"type": "float",
"default": 0.22,
"min": 0.0,
"min": 0,
"max": 0.75,
"step": 0.01
"step": 0.01,
"description": "Washed-out tape fade amount."
},
{
"id": "noiseAmount",
"label": "Noise",
"type": "float",
"default": 0.055,
"min": 0.0,
"min": 0,
"max": 0.2,
"step": 0.005
"step": 0.005,
"description": "Fine grain/noise intensity."
},
{
"id": "staticAmount",
"label": "Analog Static",
"type": "float",
"default": 0.045,
"min": 0.0,
"min": 0,
"max": 0.25,
"step": 0.005
"step": 0.005,
"description": "Random bright static intensity."
},
{
"id": "staticLines",
"label": "Static Lines",
"type": "float",
"default": 0.65,
"min": 0.0,
"min": 0,
"max": 1.5,
"step": 0.01
"step": 0.01,
"description": "Horizontal static line visibility."
},
{
"id": "noiseSize",
"label": "Noise Size",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.25,
"max": 6.0,
"step": 0.05
"max": 6,
"step": 0.05,
"description": "Scale of the generated noise pattern."
}
]
}

View File

@@ -9,10 +9,11 @@
"id": "spinSpeed",
"label": "Spin Speed",
"type": "float",
"default": 1.0,
"min": 0.0,
"max": 4.0,
"step": 0.01
"default": 1,
"min": 0,
"max": 4,
"step": 0.01,
"description": "Rotation speed of the cube."
},
{
"id": "cubeScale",
@@ -21,25 +22,28 @@
"default": 0.85,
"min": 0.3,
"max": 1.4,
"step": 0.01
"step": 0.01,
"description": "Size of the cube in the frame."
},
{
"id": "faceZoom",
"label": "Face Zoom",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.5,
"max": 2.0,
"step": 0.01
"max": 2,
"step": 0.01,
"description": "Zoom applied to the video on each cube face."
},
{
"id": "backgroundMix",
"label": "Background Mix",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Mixes the original video behind the generated cube."
}
]
}

View File

@@ -9,28 +9,43 @@
"id": "zoom",
"label": "Zoom",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.1,
"max": 8.0,
"step": 0.01
"max": 8,
"step": 0.01,
"description": "Scales the source image before edge handling is applied."
},
{
"id": "pan",
"label": "Pan",
"type": "vec2",
"default": [0.0, 0.0],
"min": [-1.0, -1.0],
"max": [1.0, 1.0],
"step": [0.001, 0.001]
"default": [
0,
0
],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Moves the source image in normalized frame units."
},
{
"id": "rotationDegrees",
"label": "Rotation",
"type": "float",
"default": 0.0,
"min": -180.0,
"max": 180.0,
"step": 0.1
"default": 0,
"min": -180,
"max": 180,
"step": 0.1,
"description": "Rotates the source image around the frame center."
},
{
"id": "edgeMode",
@@ -38,17 +53,36 @@
"type": "enum",
"default": "black",
"options": [
{ "value": "black", "label": "Black" },
{ "value": "clamp", "label": "Clamp" },
{ "value": "wrap", "label": "Wrap" },
{ "value": "mirror", "label": "Mirror" }
]
{
"value": "black",
"label": "Black"
},
{
"value": "clamp",
"label": "Clamp"
},
{
"value": "wrap",
"label": "Wrap"
},
{
"value": "mirror",
"label": "Mirror"
}
],
"description": "Chooses how samples outside the source frame are filled."
},
{
"id": "outsideColor",
"label": "Outside Color",
"type": "color",
"default": [0.0, 0.0, 0.0, 1.0]
"default": [
0,
0,
0,
1
],
"description": "Color used where the remapped image samples outside the source frame."
}
]
}

View File

@@ -33,44 +33,61 @@
"type": "float",
"default": 0.4,
"min": 0.1,
"max": 1.0,
"step": 0.01
"max": 1,
"step": 0.01,
"description": "Size of the waveform panel."
},
{
"id": "overlayPosition",
"label": "Overlay Position",
"type": "vec2",
"default": [0.24, 0.76],
"min": [0.0, 0.0],
"max": [1.0, 1.0],
"step": [0.01, 0.01]
"default": [
0.24,
0.76
],
"min": [
0,
0
],
"max": [
1,
1
],
"step": [
0.01,
0.01
],
"description": "Normalized position of the waveform panel."
},
{
"id": "overlayPadding",
"label": "Overlay Padding",
"type": "float",
"default": 0.08,
"min": 0.0,
"min": 0,
"max": 0.25,
"step": 0.01
"step": 0.01,
"description": "Padding inside the waveform panel."
},
{
"id": "waveformOpacity",
"label": "Waveform Opacity",
"type": "float",
"default": 0.75,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Opacity of the waveform trace."
},
{
"id": "backgroundOpacity",
"label": "Background",
"type": "float",
"default": 0.75,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Opacity of the waveform background panel."
},
{
"id": "lineThickness",
@@ -78,50 +95,61 @@
"type": "float",
"default": 1.5,
"min": 0.5,
"max": 10.0,
"step": 0.1
"max": 10,
"step": 0.1,
"description": "Thickness of the waveform trace in pixels."
},
{
"id": "gridOpacity",
"label": "Grid Opacity",
"type": "float",
"default": 1,
"min": 0.0,
"max": 1.0,
"step": 0.01
"min": 0,
"max": 1,
"step": 0.01,
"description": "Opacity of the waveform grid and labels."
},
{
"id": "waveformSamples",
"label": "Waveform Samples",
"type": "float",
"default": 64.0,
"min": 8.0,
"max": 96.0,
"step": 1.0
"default": 64,
"min": 8,
"max": 96,
"step": 1,
"description": "Number of vertical samples used to build the waveform."
},
{
"id": "waveformGain",
"label": "Waveform Gain",
"type": "float",
"default": 12.0,
"min": 1.0,
"max": 32.0,
"step": 0.5
"default": 12,
"min": 1,
"max": 32,
"step": 0.5,
"description": "Brightness/intensity of waveform hits."
},
{
"id": "waveformNoiseReduction",
"label": "Noise Reduction",
"type": "float",
"default": 0.08,
"min": 0.0,
"min": 0,
"max": 0.6,
"step": 0.01
"step": 0.01,
"description": "Suppresses faint waveform speckle."
},
{
"id": "waveformColor",
"label": "Waveform Color",
"type": "color",
"default": [1.0, 1.0, 1.0, 1.0]
"default": [
1,
1,
1,
1
],
"description": "Color used for the waveform trace."
}
]
}

View File

@@ -9,10 +9,11 @@
"id": "patchCount",
"label": "Patch Count",
"type": "float",
"default": 15.0,
"min": 2.0,
"max": 21.0,
"step": 1.0
"default": 15,
"min": 2,
"max": 21,
"step": 1,
"description": "Number of exposure patches in the chart."
},
{
"id": "baseLevel",
@@ -21,25 +22,28 @@
"default": 0.00006103515625,
"min": 0.000001,
"max": 0.01,
"step": 0.000001
"step": 0.000001,
"description": "Brightness of the darkest patch before tone mapping."
},
{
"id": "peakLevel",
"label": "Peak Level",
"type": "float",
"default": 1.0,
"default": 1,
"min": 0.01,
"max": 1.0,
"step": 0.001
"max": 1,
"step": 0.001,
"description": "Brightness limit for the brightest patch."
},
{
"id": "gammaEncode",
"label": "Display Gamma",
"type": "float",
"default": 1.0,
"min": 1.0,
"default": 1,
"min": 1,
"max": 2.6,
"step": 0.01
"step": 0.01,
"description": "Gamma value used when Tone Curve is Display Gamma."
},
{
"id": "toneCurve",
@@ -59,7 +63,8 @@
"value": "rec709",
"label": "Rec.709"
}
]
],
"description": "Output encoding used for the chart patches."
},
{
"id": "chartScale",
@@ -67,56 +72,63 @@
"type": "float",
"default": 0.86,
"min": 0.25,
"max": 1.0,
"step": 0.01
"max": 1,
"step": 0.01,
"description": "Overall size of the chart in frame."
},
{
"id": "gapSize",
"label": "Gap Size",
"type": "float",
"default": 0.18,
"min": 0.0,
"min": 0,
"max": 0.45,
"step": 0.01
"step": 0.01,
"description": "Spacing between exposure patches."
},
{
"id": "vertical",
"label": "Vertical",
"type": "bool",
"default": false
"default": false,
"description": "Stacks patches vertically instead of horizontally."
},
{
"id": "reverseOrder",
"label": "Reverse Order",
"type": "bool",
"default": false
"default": false,
"description": "Reverses the dark-to-bright patch order."
},
{
"id": "backgroundLevel",
"label": "Background",
"type": "float",
"default": 0.0,
"min": 0.0,
"default": 0,
"min": 0,
"max": 0.2,
"step": 0.001
"step": 0.001,
"description": "Background brightness behind the chart."
},
{
"id": "borderLevel",
"label": "Border",
"type": "float",
"default": 0.08,
"min": 0.0,
"max": 1.0,
"step": 0.001
"min": 0,
"max": 1,
"step": 0.001,
"description": "Brightness of patch borders."
},
{
"id": "sourceMix",
"label": "Source Mix",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
"default": 0,
"min": 0,
"max": 1,
"step": 0.01,
"description": "Blends the generated effect with the incoming video."
}
]
}