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", "type": "enum",
"default": "x1_33", "default": "x1_33",
"options": [ "options": [
{ "value": "x1_3", "label": "1.3x" }, {
{ "value": "x1_33", "label": "1.33x" }, "value": "x1_3",
{ "value": "x1_5", "label": "1.5x" }, "label": "1.3x"
{ "value": "x2_0", "label": "2x" } },
] {
"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", "id": "framing",
@@ -23,24 +36,50 @@
"type": "enum", "type": "enum",
"default": "fit", "default": "fit",
"options": [ "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", "id": "pan",
"label": "Pan", "label": "Pan",
"type": "vec2", "type": "vec2",
"default": [0.0, 0.0], "default": [
"min": [-1.0, -1.0], 0,
"max": [1.0, 1.0], 0
"step": [0.001, 0.001] ],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Reframes the desqueezed image after fit/fill scaling."
}, },
{ {
"id": "outsideColor", "id": "outsideColor",
"label": "Outside Color", "label": "Outside Color",
"type": "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", "id": "spinRotation",
"label": "Spin Rotation", "label": "Spin Rotation",
"type": "float", "type": "float",
"default": -2.0, "default": -2,
"min": -8.0, "min": -8,
"max": 8.0, "max": 8,
"step": 0.05 "step": 0.05,
"description": "Base rotation applied to the swirl field."
}, },
{ {
"id": "spinSpeed", "id": "spinSpeed",
"label": "Spin Speed", "label": "Spin Speed",
"type": "float", "type": "float",
"default": 7.0, "default": 7,
"min": 0.0, "min": 0,
"max": 20.0, "max": 20,
"step": 0.1 "step": 0.1,
"description": "How quickly the swirl pattern rotates."
}, },
{ {
"id": "spinAmount", "id": "spinAmount",
"label": "Spin Amount", "label": "Spin Amount",
"type": "float", "type": "float",
"default": 0.25, "default": 0.25,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Amount of radial twisting in the swirl."
}, },
{ {
"id": "spinEase", "id": "spinEase",
"label": "Spin Ease", "label": "Spin Ease",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.0, "min": 0,
"max": 3.0, "max": 3,
"step": 0.01 "step": 0.01,
"description": "Changes how strongly the twist falls off from the center."
}, },
{ {
"id": "contrast", "id": "contrast",
@@ -47,59 +51,94 @@
"type": "float", "type": "float",
"default": 3.5, "default": 3.5,
"min": 0.5, "min": 0.5,
"max": 8.0, "max": 8,
"step": 0.05 "step": 0.05,
"description": "Adjusts separation between dark and bright areas."
}, },
{ {
"id": "lighting", "id": "lighting",
"label": "Lighting", "label": "Lighting",
"type": "float", "type": "float",
"default": 0.4, "default": 0.4,
"min": 0.0, "min": 0,
"max": 1.5, "max": 1.5,
"step": 0.01 "step": 0.01,
"description": "Strength of the highlight/shadow modulation."
}, },
{ {
"id": "offset", "id": "offset",
"label": "Offset", "label": "Offset",
"type": "vec2", "type": "vec2",
"default": [0.0, 0.0], "default": [
"min": [-1.0, -1.0], 0,
"max": [1.0, 1.0], 0
"step": [0.001, 0.001] ],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Moves the generated field in normalized coordinates."
}, },
{ {
"id": "colour1", "id": "colour1",
"label": "Colour 1", "label": "Colour 1",
"type": "color", "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", "id": "colour2",
"label": "Colour 2", "label": "Colour 2",
"type": "color", "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", "id": "colour3",
"label": "Colour 3", "label": "Colour 3",
"type": "color", "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", "id": "isRotate",
"label": "Rotate Field", "label": "Rotate Field",
"type": "bool", "type": "bool",
"default": false "default": false,
"description": "Rotates the whole generated field over time."
}, },
{ {
"id": "sourceMix", "id": "sourceMix",
"label": "Source Mix", "label": "Source Mix",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Blends the generated effect with the incoming video."
} }
] ]
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,55 +9,85 @@
"id": "lensFovDegrees", "id": "lensFovDegrees",
"label": "Lens FOV", "label": "Lens FOV",
"type": "float", "type": "float",
"default": 190.0, "default": 190,
"min": 1.0, "min": 1,
"max": 220.0, "max": 220,
"step": 0.1 "step": 0.1,
"description": "Actual fisheye lens field of view in degrees."
}, },
{ {
"id": "center", "id": "center",
"label": "Optical Center", "label": "Optical Center",
"type": "vec2", "type": "vec2",
"default": [0.5, 0.5], "default": [
"min": [0.0, 0.0], 0.5,
"max": [1.0, 1.0], 0.5
"step": [0.001, 0.001] ],
"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", "id": "radius",
"label": "Fisheye Radius", "label": "Fisheye Radius",
"type": "vec2", "type": "vec2",
"default": [0.5, 0.8889], "default": [
"min": [0.001, 0.001], 0.5,
"max": [2.0, 2.0], 0.8889
"step": [0.001, 0.001] ],
"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", "id": "yawDegrees",
"label": "Yaw", "label": "Yaw",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Rotates the virtual view horizontally."
}, },
{ {
"id": "pitchDegrees", "id": "pitchDegrees",
"label": "Pitch", "label": "Pitch",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -120.0, "min": -120,
"max": 120.0, "max": 120,
"step": 0.1 "step": 0.1,
"description": "Rotates the virtual view vertically."
}, },
{ {
"id": "rollDegrees", "id": "rollDegrees",
"label": "Roll", "label": "Roll",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Live roll rotation around the viewing axis."
}, },
{ {
"id": "fisheyeModel", "id": "fisheyeModel",
@@ -65,35 +95,56 @@
"type": "enum", "type": "enum",
"default": "equidistant", "default": "equidistant",
"options": [ "options": [
{ "value": "equidistant", "label": "Equidistant" }, {
{ "value": "equisolid", "label": "Equisolid" }, "value": "equidistant",
{ "value": "stereographic", "label": "Stereographic" }, "label": "Equidistant"
{ "value": "orthographic", "label": "Orthographic" } },
] {
"value": "equisolid",
"label": "Equisolid"
},
{
"value": "stereographic",
"label": "Stereographic"
},
{
"value": "orthographic",
"label": "Orthographic"
}
],
"description": "Projection model used by the physical fisheye lens."
}, },
{ {
"id": "edgeFill", "id": "edgeFill",
"label": "Edge Fill", "label": "Edge Fill",
"type": "float", "type": "float",
"default": 0.06, "default": 0.06,
"min": 0.0, "min": 0,
"max": 0.3, "max": 0.3,
"step": 0.001 "step": 0.001,
"description": "Extends edge samples outward to cover small missing areas."
}, },
{ {
"id": "edgeBlur", "id": "edgeBlur",
"label": "Edge Blur", "label": "Edge Blur",
"type": "float", "type": "float",
"default": 0.018, "default": 0.018,
"min": 0.0, "min": 0,
"max": 0.12, "max": 0.12,
"step": 0.001 "step": 0.001,
"description": "Softens the dilated edge fill."
}, },
{ {
"id": "outsideColor", "id": "outsideColor",
"label": "Outside Color", "label": "Outside Color",
"type": "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", "id": "lensFovDegrees",
"label": "Lens FOV", "label": "Lens FOV",
"type": "float", "type": "float",
"default": 190.0, "default": 190,
"min": 1.0, "min": 1,
"max": 220.0, "max": 220,
"step": 0.1 "step": 0.1,
"description": "Actual fisheye lens field of view in degrees."
}, },
{ {
"id": "center", "id": "center",
"label": "Optical Center", "label": "Optical Center",
"type": "vec2", "type": "vec2",
"default": [0.5, 0.5], "default": [
"min": [0.0, 0.0], 0.5,
"max": [1.0, 1.0], 0.5
"step": [0.001, 0.001] ],
"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", "id": "radius",
"label": "Fisheye Radius", "label": "Fisheye Radius",
"type": "vec2", "type": "vec2",
"default": [0.5, 0.885], "default": [
"min": [0.001, 0.001], 0.5,
"max": [2.0, 2.0], 0.885
"step": [0.001, 0.001] ],
"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", "id": "virtualFovDegrees",
"label": "Virtual FOV", "label": "Virtual FOV",
"type": "float", "type": "float",
"default": 75.0, "default": 75,
"min": 1.0, "min": 1,
"max": 175.0, "max": 175,
"step": 0.1 "step": 0.1,
"description": "Field of view of the generated virtual camera."
}, },
{ {
"id": "basePanDegrees", "id": "basePanDegrees",
"label": "Base Pan", "label": "Base Pan",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Permanent horizontal alignment offset before live pan."
}, },
{ {
"id": "baseTiltDegrees", "id": "baseTiltDegrees",
"label": "Base Tilt", "label": "Base Tilt",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -120.0, "min": -120,
"max": 120.0, "max": 120,
"step": 0.1 "step": 0.1,
"description": "Permanent vertical alignment offset before live tilt."
}, },
{ {
"id": "baseRollDegrees", "id": "baseRollDegrees",
"label": "Base Roll", "label": "Base Roll",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Permanent roll alignment offset before live roll."
}, },
{ {
"id": "panDegrees", "id": "panDegrees",
"label": "Pan", "label": "Pan",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Live horizontal view rotation."
}, },
{ {
"id": "tiltDegrees", "id": "tiltDegrees",
"label": "Tilt", "label": "Tilt",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -120.0, "min": -120,
"max": 120.0, "max": 120,
"step": 0.1 "step": 0.1,
"description": "Live vertical view rotation."
}, },
{ {
"id": "rollDegrees", "id": "rollDegrees",
"label": "Roll", "label": "Roll",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Live roll rotation around the viewing axis."
}, },
{ {
"id": "fisheyeModel", "id": "fisheyeModel",
@@ -101,11 +135,24 @@
"type": "enum", "type": "enum",
"default": "equidistant", "default": "equidistant",
"options": [ "options": [
{ "value": "equidistant", "label": "Equidistant" }, {
{ "value": "equisolid", "label": "Equisolid" }, "value": "equidistant",
{ "value": "stereographic", "label": "Stereographic" }, "label": "Equidistant"
{ "value": "orthographic", "label": "Orthographic" } },
] {
"value": "equisolid",
"label": "Equisolid"
},
{
"value": "stereographic",
"label": "Stereographic"
},
{
"value": "orthographic",
"label": "Orthographic"
}
],
"description": "Projection model used by the physical fisheye lens."
}, },
{ {
"id": "outputProjection", "id": "outputProjection",
@@ -113,15 +160,28 @@
"type": "enum", "type": "enum",
"default": "rectilinear", "default": "rectilinear",
"options": [ "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", "id": "outsideColor",
"label": "Outside Color", "label": "Outside Color",
"type": "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", "id": "horizontal",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "blurHorizontal", "entryPoint": "blurHorizontal",
"inputs": ["layerInput"], "inputs": [
"layerInput"
],
"output": "blurHorizontal" "output": "blurHorizontal"
}, },
{ {
"id": "vertical", "id": "vertical",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "blurVertical", "entryPoint": "blurVertical",
"inputs": ["blurHorizontal"], "inputs": [
"blurHorizontal"
],
"output": "layerOutput" "output": "layerOutput"
} }
], ],
@@ -25,28 +29,31 @@
"id": "radius", "id": "radius",
"label": "Radius", "label": "Radius",
"type": "float", "type": "float",
"default": 2.0, "default": 2,
"min": 0.0, "min": 0,
"max": 8.0, "max": 8,
"step": 0.1 "step": 0.1,
"description": "Blur radius in pixels for each separable pass."
}, },
{ {
"id": "strength", "id": "strength",
"label": "Strength", "label": "Strength",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Blends between the original and blurred result."
}, },
{ {
"id": "samples", "id": "samples",
"label": "Samples", "label": "Samples",
"type": "float", "type": "float",
"default": 2.0, "default": 2,
"min": 0.0, "min": 0,
"max": 25.0, "max": 25,
"step": 1.0 "step": 1,
"description": "Number of taps per direction; higher values cost more GPU time."
} }
] ]
} }

View File

@@ -9,21 +9,27 @@
"id": "rawMatte", "id": "rawMatte",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "buildRawMatte", "entryPoint": "buildRawMatte",
"inputs": ["layerInput"], "inputs": [
"layerInput"
],
"output": "rawMatte" "output": "rawMatte"
}, },
{ {
"id": "refinedMatte", "id": "refinedMatte",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "refineMatte", "entryPoint": "refineMatte",
"inputs": ["rawMatte"], "inputs": [
"rawMatte"
],
"output": "refinedMatte" "output": "refinedMatte"
}, },
{ {
"id": "final", "id": "final",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "applyKey", "entryPoint": "applyKey",
"inputs": ["refinedMatte"], "inputs": [
"refinedMatte"
],
"output": "layerOutput" "output": "layerOutput"
} }
], ],
@@ -32,10 +38,31 @@
"id": "screenColor", "id": "screenColor",
"label": "Screen Color", "label": "Screen Color",
"type": "color", "type": "color",
"default": [0.15, 0.85, 0.2, 1.0], "default": [
"min": [0.0, 0.0, 0.0, 0.0], 0.15,
"max": [1.0, 1.0, 1.0, 1.0], 0.85,
"step": [0.01, 0.01, 0.01, 0.01] 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", "id": "threshold",
@@ -44,7 +71,8 @@
"default": 0.24, "default": 0.24,
"min": 0.01, "min": 0.01,
"max": 0.8, "max": 0.8,
"step": 0.005 "step": 0.005,
"description": "Higher values keep more foreground; lower values remove more screen."
}, },
{ {
"id": "softness", "id": "softness",
@@ -53,150 +81,206 @@
"default": 0.16, "default": 0.16,
"min": 0.001, "min": 0.001,
"max": 0.5, "max": 0.5,
"step": 0.005 "step": 0.005,
"description": "Feathers the transition between foreground and keyed screen."
}, },
{ {
"id": "screenBalance", "id": "screenBalance",
"label": "Screen Balance", "label": "Screen Balance",
"type": "float", "type": "float",
"default": 0.5, "default": 0.5,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.005 "step": 0.005,
"description": "Balances chroma-distance keying against color-direction keying."
}, },
{ {
"id": "screenPreBlur", "id": "screenPreBlur",
"label": "Screen PreBlur", "label": "Screen PreBlur",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.0, "min": 0,
"max": 8.0, "max": 8,
"step": 0.1 "step": 0.1,
"description": "Blurs source color before matte generation to reduce noisy edges."
}, },
{ {
"id": "erodeDilate", "id": "erodeDilate",
"label": "Erode/Dilate", "label": "Erode/Dilate",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -0.3, "min": -0.3,
"max": 0.3, "max": 0.3,
"step": 0.005 "step": 0.005,
"description": "Negative erodes the matte; positive expands it."
}, },
{ {
"id": "matteBlur", "id": "matteBlur",
"label": "Matte Blur", "label": "Matte Blur",
"type": "float", "type": "float",
"default": 1.25, "default": 1.25,
"min": 0.0, "min": 0,
"max": 6.0, "max": 6,
"step": 0.1 "step": 0.1,
"description": "Softens the generated matte after keying."
}, },
{ {
"id": "matteGamma", "id": "matteGamma",
"label": "Matte Gamma", "label": "Matte Gamma",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.25, "min": 0.25,
"max": 4.0, "max": 4,
"step": 0.01 "step": 0.01,
"description": "Shapes midtone opacity in the matte."
}, },
{ {
"id": "matteContrast", "id": "matteContrast",
"label": "Matte Contrast", "label": "Matte Contrast",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.25, "min": 0.25,
"max": 4.0, "max": 4,
"step": 0.01 "step": 0.01,
"description": "Increases or reduces matte separation around 50 percent alpha."
}, },
{ {
"id": "blackCleanup", "id": "blackCleanup",
"label": "Black Cleanup", "label": "Black Cleanup",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.005 "step": 0.005,
"description": "Pushes semi-transparent dark matte areas toward transparent."
}, },
{ {
"id": "whiteCleanup", "id": "whiteCleanup",
"label": "White Cleanup", "label": "White Cleanup",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.005 "step": 0.005,
"description": "Pushes semi-transparent light matte areas toward opaque."
}, },
{ {
"id": "despill", "id": "despill",
"label": "Despill", "label": "Despill",
"type": "float", "type": "float",
"default": 0.45, "default": 0.45,
"min": 0.0, "min": 0,
"max": 1.5, "max": 1.5,
"step": 0.01 "step": 0.01,
"description": "Removes screen-colored contamination from foreground edges."
}, },
{ {
"id": "despillBias", "id": "despillBias",
"label": "Despill Bias", "label": "Despill Bias",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -0.5, "min": -0.5,
"max": 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", "id": "spillTint",
"label": "Spill Tint", "label": "Spill Tint",
"type": "color", "type": "color",
"default": [1.0, 1.0, 1.0, 1.0], "default": [
"min": [0.0, 0.0, 0.0, 0.0], 1,
"max": [1.0, 1.0, 1.0, 1.0], 1,
"step": [0.01, 0.01, 0.01, 0.01] 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", "id": "edgeRecover",
"label": "Edge Recover", "label": "Edge Recover",
"type": "float", "type": "float",
"default": 0.18, "default": 0.18,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.005 "step": 0.005,
"description": "Adds color recovery along semi-transparent matte edges."
}, },
{ {
"id": "edgeColor", "id": "edgeColor",
"label": "Edge Color", "label": "Edge Color",
"type": "color", "type": "color",
"default": [1.0, 1.0, 1.0, 1.0], "default": [
"min": [0.0, 0.0, 0.0, 0.0], 1,
"max": [1.0, 1.0, 1.0, 1.0], 1,
"step": [0.01, 0.01, 0.01, 0.01] 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", "id": "clipBlack",
"label": "Clip Black", "label": "Clip Black",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 0.5, "max": 0.5,
"step": 0.005 "step": 0.005,
"description": "Matte values below this become transparent."
}, },
{ {
"id": "clipWhite", "id": "clipWhite",
"label": "Clip White", "label": "Clip White",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.5, "min": 0.5,
"max": 1.0, "max": 1,
"step": 0.005 "step": 0.005,
"description": "Matte values above this become opaque."
}, },
{ {
"id": "cropLeft", "id": "cropLeft",
"label": "Crop Left", "label": "Crop Left",
"description": "Trims the final matte from the left edge as a fraction of frame width.", "description": "Trims the final matte from the left edge as a fraction of frame width.",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 0.5, "max": 0.5,
"step": 0.001 "step": 0.001
}, },
@@ -205,8 +289,8 @@
"label": "Crop Right", "label": "Crop Right",
"description": "Trims the final matte from the right edge as a fraction of frame width.", "description": "Trims the final matte from the right edge as a fraction of frame width.",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 0.5, "max": 0.5,
"step": 0.001 "step": 0.001
}, },
@@ -215,8 +299,8 @@
"label": "Crop Top", "label": "Crop Top",
"description": "Trims the final matte from the top edge as a fraction of frame height.", "description": "Trims the final matte from the top edge as a fraction of frame height.",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 0.5, "max": 0.5,
"step": 0.001 "step": 0.001
}, },
@@ -225,8 +309,8 @@
"label": "Crop Bottom", "label": "Crop Bottom",
"description": "Trims the final matte from the bottom edge as a fraction of frame height.", "description": "Trims the final matte from the bottom edge as a fraction of frame height.",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 0.5, "max": 0.5,
"step": 0.001 "step": 0.001
}, },
@@ -236,12 +320,28 @@
"type": "enum", "type": "enum",
"default": "composite", "default": "composite",
"options": [ "options": [
{ "value": "composite", "label": "Composite" }, {
{ "value": "matte", "label": "Matte" }, "value": "composite",
{ "value": "spill", "label": "Spill" }, "label": "Composite"
{ "value": "despill", "label": "Despill" }, },
{ "value": "status", "label": "Status" } {
] "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", "id": "speed",
"label": "Speed", "label": "Speed",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.0, "min": 0,
"max": 4.0, "max": 4,
"step": 0.01 "step": 0.01,
"description": "Animation speed multiplier; set to 0 to pause motion."
}, },
{ {
"id": "scale", "id": "scale",
"label": "Scale", "label": "Scale",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.25, "min": 0.25,
"max": 3.0, "max": 3,
"step": 0.01 "step": 0.01,
"description": "Overall size of the effect in the frame."
}, },
{ {
"id": "raySteps", "id": "raySteps",
"label": "Ray Steps", "label": "Ray Steps",
"type": "float", "type": "float",
"default": 77.0, "default": 77,
"min": 8.0, "min": 8,
"max": 77.0, "max": 77,
"step": 1.0 "step": 1,
"description": "Raymarch iteration count; higher values increase detail and GPU cost."
}, },
{ {
"id": "intensity", "id": "intensity",
"label": "Intensity", "label": "Intensity",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.1, "min": 0.1,
"max": 4.0, "max": 4,
"step": 0.01 "step": 0.01,
"description": "Overall brightness of the accumulated raymarched light."
}, },
{ {
"id": "sourceMix", "id": "sourceMix",
"label": "Source Mix", "label": "Source Mix",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Blends the generated effect with the incoming video."
} }
] ]
} }

View File

@@ -9,34 +9,59 @@
"id": "lift", "id": "lift",
"label": "Lift", "label": "Lift",
"type": "color", "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", "id": "gamma",
"label": "Gamma", "label": "Gamma",
"type": "color", "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", "id": "gain",
"label": "Gain", "label": "Gain",
"type": "color", "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", "id": "offset",
"label": "Offset", "label": "Offset",
"type": "color", "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", "id": "strength",
"label": "Strength", "label": "Strength",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Blends the grade with the original image."
} }
] ]
} }

View File

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

View File

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

View File

@@ -9,25 +9,45 @@
"id": "pixelCount", "id": "pixelCount",
"label": "Pixel Count", "label": "Pixel Count",
"type": "vec2", "type": "vec2",
"default": [96.0, 54.0], "default": [
"min": [2.0, 2.0], 96,
"max": [1920.0, 1080.0], 54
"step": [1.0, 1.0] ],
"min": [
2,
2
],
"max": [
1920,
1080
],
"step": [
1,
1
],
"description": "Number of pixel blocks across X and Y."
}, },
{ {
"id": "gridAmount", "id": "gridAmount",
"label": "Grid", "label": "Grid",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Visibility of the block grid lines."
}, },
{ {
"id": "gridColor", "id": "gridColor",
"label": "Grid Color", "label": "Grid Color",
"type": "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", "category": "Scopes & Guides",
"entryPoint": "shadeVideo", "entryPoint": "shadeVideo",
"parameters": [ "parameters": [
{ "id": "showActionSafe", "label": "Action Safe", "type": "bool", "default": true }, {
{ "id": "showTitleSafe", "label": "Title Safe", "type": "bool", "default": true }, "id": "showActionSafe",
{ "id": "showCenter", "label": "Center Marks", "type": "bool", "default": true }, "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", "id": "lineColor",
"label": "Line Color", "label": "Line Color",
"type": "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", "id": "lineOpacity",
"label": "Line Opacity", "label": "Line Opacity",
"type": "float", "type": "float",
"default": 0.65, "default": 0.65,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Overall visibility of the guide lines."
}, },
{ {
"id": "lineThicknessPixels", "id": "lineThicknessPixels",
"label": "Line Thickness", "label": "Line Thickness",
"type": "float", "type": "float",
"default": 2.0, "default": 2,
"min": 0.5, "min": 0.5,
"max": 12.0, "max": 12,
"step": 0.1 "step": 0.1,
"description": "Guide line width in output pixels."
}, },
{ {
"id": "aspectMode", "id": "aspectMode",
@@ -38,20 +64,34 @@
"type": "enum", "type": "enum",
"default": "none", "default": "none",
"options": [ "options": [
{ "value": "none", "label": "None" }, {
{ "value": "239", "label": "2.39:1" }, "value": "none",
{ "value": "185", "label": "1.85:1" }, "label": "None"
{ "value": "square", "label": "1:1" } },
] {
"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", "id": "matteOpacity",
"label": "Matte Opacity", "label": "Matte Opacity",
"type": "float", "type": "float",
"default": 0.35, "default": 0.35,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Opacity of the aspect-ratio matte outside the active image."
} }
] ]
} }

View File

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

View File

@@ -9,7 +9,13 @@
"id": "fillColor", "id": "fillColor",
"label": "Fill", "label": "Fill",
"type": "color", "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", "label": "Echo Amount",
"type": "float", "type": "float",
"default": 0.55, "default": 0.55,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Overall visibility of the temporal echoes."
}, },
{ {
"id": "decay", "id": "decay",
"label": "Decay", "label": "Decay",
"type": "float", "type": "float",
"default": 0.72, "default": 0.72,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "How quickly older temporal echoes fade away."
}, },
{ {
"id": "frameStride", "id": "frameStride",
"label": "Frame Stride", "label": "Frame Stride",
"type": "float", "type": "float",
"default": 2.0, "default": 2,
"min": 1.0, "min": 1,
"max": 6.0, "max": 6,
"step": 1.0 "step": 1,
"description": "Number of frames skipped between each echo sample."
}, },
{ {
"id": "echoTint", "id": "echoTint",
"label": "Echo Tint", "label": "Echo Tint",
"type": "color", "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", "label": "Current Mix",
"type": "float", "type": "float",
"default": 0.72, "default": 0.72,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Contribution of the current frame in the temporal blend."
}, },
{ {
"id": "trailMix", "id": "trailMix",
"label": "Trail Mix", "label": "Trail Mix",
"type": "float", "type": "float",
"default": 0.28, "default": 0.28,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Contribution of older frames in the temporal blend."
} }
] ]
} }

View File

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

View File

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

View File

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

View File

@@ -9,7 +9,8 @@
"id": "showLocalTime", "id": "showLocalTime",
"label": "Show Local Time", "label": "Show Local Time",
"type": "bool", "type": "bool",
"default": true "default": true,
"description": "Uses the PC UTC offset for local time; disable for pure UTC."
}, },
{ {
"id": "clockScale", "id": "clockScale",
@@ -18,19 +19,32 @@
"default": 0.7, "default": 0.7,
"min": 0.25, "min": 0.25,
"max": 0.95, "max": 0.95,
"step": 0.01 "step": 0.01,
"description": "Size of the clock face relative to the frame."
}, },
{ {
"id": "faceColor", "id": "faceColor",
"label": "Face Color", "label": "Face Color",
"type": "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", "id": "accentColor",
"label": "Accent Color", "label": "Accent Color",
"type": "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", "id": "tapeSmear",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "buildTapeSmear", "entryPoint": "buildTapeSmear",
"inputs": ["layerInput"], "inputs": [
"layerInput"
],
"output": "tapeSmear" "output": "tapeSmear"
}, },
{ {
"id": "final", "id": "final",
"source": "shader.slang", "source": "shader.slang",
"entryPoint": "finishVhs", "entryPoint": "finishVhs",
"inputs": ["tapeSmear"], "inputs": [
"tapeSmear"
],
"output": "layerOutput" "output": "layerOutput"
} }
], ],
@@ -26,117 +30,130 @@
"label": "Wiggle", "label": "Wiggle",
"type": "float", "type": "float",
"default": 0.03, "default": 0.03,
"min": 0.0, "min": 0,
"max": 1.5, "max": 1.5,
"step": 0.01 "step": 0.01,
"description": "Horizontal tape wobble amount."
}, },
{ {
"id": "wiggleSpeed", "id": "wiggleSpeed",
"label": "Wiggle Speed", "label": "Wiggle Speed",
"type": "float", "type": "float",
"default": 25.0, "default": 25,
"min": 0.0, "min": 0,
"max": 100.0, "max": 100,
"step": 1.0 "step": 1,
"description": "Speed of the tape wobble modulation."
}, },
{ {
"id": "smear", "id": "smear",
"label": "Smear", "label": "Smear",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.0, "min": 0,
"max": 2.0, "max": 2,
"step": 0.01 "step": 0.01,
"description": "Horizontal color/luma smear strength."
}, },
{ {
"id": "blurSamples", "id": "blurSamples",
"label": "Blur Samples", "label": "Blur Samples",
"type": "float", "type": "float",
"default": 15.0, "default": 15,
"min": 3.0, "min": 3,
"max": 15.0, "max": 15,
"step": 1.0 "step": 1,
"description": "Number of smear samples; higher values are smoother but heavier."
}, },
{ {
"id": "vignetteAmount", "id": "vignetteAmount",
"label": "Vignette", "label": "Vignette",
"type": "float", "type": "float",
"default": 0.18, "default": 0.18,
"min": 0.0, "min": 0,
"max": 0.6, "max": 0.6,
"step": 0.01 "step": 0.01,
"description": "Darkens and softens the frame edges."
}, },
{ {
"id": "aberrationAmount", "id": "aberrationAmount",
"label": "Aberration", "label": "Aberration",
"type": "float", "type": "float",
"default": 0.75, "default": 0.75,
"min": 0.0, "min": 0,
"max": 3.0, "max": 3,
"step": 0.05 "step": 0.05,
"description": "Color-channel separation amount."
}, },
{ {
"id": "halationAmount", "id": "halationAmount",
"label": "Halation", "label": "Halation",
"type": "float", "type": "float",
"default": 0.12, "default": 0.12,
"min": 0.0, "min": 0,
"max": 0.5, "max": 0.5,
"step": 0.01 "step": 0.01,
"description": "Red/orange glow around bright areas."
}, },
{ {
"id": "bloomAmount", "id": "bloomAmount",
"label": "Bloom", "label": "Bloom",
"type": "float", "type": "float",
"default": 0.18, "default": 0.18,
"min": 0.0, "min": 0,
"max": 0.6, "max": 0.6,
"step": 0.01 "step": 0.01,
"description": "Soft glow strength from bright video regions."
}, },
{ {
"id": "fadeAmount", "id": "fadeAmount",
"label": "Fade", "label": "Fade",
"type": "float", "type": "float",
"default": 0.22, "default": 0.22,
"min": 0.0, "min": 0,
"max": 0.75, "max": 0.75,
"step": 0.01 "step": 0.01,
"description": "Washed-out tape fade amount."
}, },
{ {
"id": "noiseAmount", "id": "noiseAmount",
"label": "Noise", "label": "Noise",
"type": "float", "type": "float",
"default": 0.055, "default": 0.055,
"min": 0.0, "min": 0,
"max": 0.2, "max": 0.2,
"step": 0.005 "step": 0.005,
"description": "Fine grain/noise intensity."
}, },
{ {
"id": "staticAmount", "id": "staticAmount",
"label": "Analog Static", "label": "Analog Static",
"type": "float", "type": "float",
"default": 0.045, "default": 0.045,
"min": 0.0, "min": 0,
"max": 0.25, "max": 0.25,
"step": 0.005 "step": 0.005,
"description": "Random bright static intensity."
}, },
{ {
"id": "staticLines", "id": "staticLines",
"label": "Static Lines", "label": "Static Lines",
"type": "float", "type": "float",
"default": 0.65, "default": 0.65,
"min": 0.0, "min": 0,
"max": 1.5, "max": 1.5,
"step": 0.01 "step": 0.01,
"description": "Horizontal static line visibility."
}, },
{ {
"id": "noiseSize", "id": "noiseSize",
"label": "Noise Size", "label": "Noise Size",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.25, "min": 0.25,
"max": 6.0, "max": 6,
"step": 0.05 "step": 0.05,
"description": "Scale of the generated noise pattern."
} }
] ]
} }

View File

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

View File

@@ -9,28 +9,43 @@
"id": "zoom", "id": "zoom",
"label": "Zoom", "label": "Zoom",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.1, "min": 0.1,
"max": 8.0, "max": 8,
"step": 0.01 "step": 0.01,
"description": "Scales the source image before edge handling is applied."
}, },
{ {
"id": "pan", "id": "pan",
"label": "Pan", "label": "Pan",
"type": "vec2", "type": "vec2",
"default": [0.0, 0.0], "default": [
"min": [-1.0, -1.0], 0,
"max": [1.0, 1.0], 0
"step": [0.001, 0.001] ],
"min": [
-1,
-1
],
"max": [
1,
1
],
"step": [
0.001,
0.001
],
"description": "Moves the source image in normalized frame units."
}, },
{ {
"id": "rotationDegrees", "id": "rotationDegrees",
"label": "Rotation", "label": "Rotation",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": -180.0, "min": -180,
"max": 180.0, "max": 180,
"step": 0.1 "step": 0.1,
"description": "Rotates the source image around the frame center."
}, },
{ {
"id": "edgeMode", "id": "edgeMode",
@@ -38,17 +53,36 @@
"type": "enum", "type": "enum",
"default": "black", "default": "black",
"options": [ "options": [
{ "value": "black", "label": "Black" }, {
{ "value": "clamp", "label": "Clamp" }, "value": "black",
{ "value": "wrap", "label": "Wrap" }, "label": "Black"
{ "value": "mirror", "label": "Mirror" } },
] {
"value": "clamp",
"label": "Clamp"
},
{
"value": "wrap",
"label": "Wrap"
},
{
"value": "mirror",
"label": "Mirror"
}
],
"description": "Chooses how samples outside the source frame are filled."
}, },
{ {
"id": "outsideColor", "id": "outsideColor",
"label": "Outside Color", "label": "Outside Color",
"type": "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", "type": "float",
"default": 0.4, "default": 0.4,
"min": 0.1, "min": 0.1,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Size of the waveform panel."
}, },
{ {
"id": "overlayPosition", "id": "overlayPosition",
"label": "Overlay Position", "label": "Overlay Position",
"type": "vec2", "type": "vec2",
"default": [0.24, 0.76], "default": [
"min": [0.0, 0.0], 0.24,
"max": [1.0, 1.0], 0.76
"step": [0.01, 0.01] ],
"min": [
0,
0
],
"max": [
1,
1
],
"step": [
0.01,
0.01
],
"description": "Normalized position of the waveform panel."
}, },
{ {
"id": "overlayPadding", "id": "overlayPadding",
"label": "Overlay Padding", "label": "Overlay Padding",
"type": "float", "type": "float",
"default": 0.08, "default": 0.08,
"min": 0.0, "min": 0,
"max": 0.25, "max": 0.25,
"step": 0.01 "step": 0.01,
"description": "Padding inside the waveform panel."
}, },
{ {
"id": "waveformOpacity", "id": "waveformOpacity",
"label": "Waveform Opacity", "label": "Waveform Opacity",
"type": "float", "type": "float",
"default": 0.75, "default": 0.75,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Opacity of the waveform trace."
}, },
{ {
"id": "backgroundOpacity", "id": "backgroundOpacity",
"label": "Background", "label": "Background",
"type": "float", "type": "float",
"default": 0.75, "default": 0.75,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Opacity of the waveform background panel."
}, },
{ {
"id": "lineThickness", "id": "lineThickness",
@@ -78,50 +95,61 @@
"type": "float", "type": "float",
"default": 1.5, "default": 1.5,
"min": 0.5, "min": 0.5,
"max": 10.0, "max": 10,
"step": 0.1 "step": 0.1,
"description": "Thickness of the waveform trace in pixels."
}, },
{ {
"id": "gridOpacity", "id": "gridOpacity",
"label": "Grid Opacity", "label": "Grid Opacity",
"type": "float", "type": "float",
"default": 1, "default": 1,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Opacity of the waveform grid and labels."
}, },
{ {
"id": "waveformSamples", "id": "waveformSamples",
"label": "Waveform Samples", "label": "Waveform Samples",
"type": "float", "type": "float",
"default": 64.0, "default": 64,
"min": 8.0, "min": 8,
"max": 96.0, "max": 96,
"step": 1.0 "step": 1,
"description": "Number of vertical samples used to build the waveform."
}, },
{ {
"id": "waveformGain", "id": "waveformGain",
"label": "Waveform Gain", "label": "Waveform Gain",
"type": "float", "type": "float",
"default": 12.0, "default": 12,
"min": 1.0, "min": 1,
"max": 32.0, "max": 32,
"step": 0.5 "step": 0.5,
"description": "Brightness/intensity of waveform hits."
}, },
{ {
"id": "waveformNoiseReduction", "id": "waveformNoiseReduction",
"label": "Noise Reduction", "label": "Noise Reduction",
"type": "float", "type": "float",
"default": 0.08, "default": 0.08,
"min": 0.0, "min": 0,
"max": 0.6, "max": 0.6,
"step": 0.01 "step": 0.01,
"description": "Suppresses faint waveform speckle."
}, },
{ {
"id": "waveformColor", "id": "waveformColor",
"label": "Waveform Color", "label": "Waveform Color",
"type": "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", "id": "patchCount",
"label": "Patch Count", "label": "Patch Count",
"type": "float", "type": "float",
"default": 15.0, "default": 15,
"min": 2.0, "min": 2,
"max": 21.0, "max": 21,
"step": 1.0 "step": 1,
"description": "Number of exposure patches in the chart."
}, },
{ {
"id": "baseLevel", "id": "baseLevel",
@@ -21,25 +22,28 @@
"default": 0.00006103515625, "default": 0.00006103515625,
"min": 0.000001, "min": 0.000001,
"max": 0.01, "max": 0.01,
"step": 0.000001 "step": 0.000001,
"description": "Brightness of the darkest patch before tone mapping."
}, },
{ {
"id": "peakLevel", "id": "peakLevel",
"label": "Peak Level", "label": "Peak Level",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 0.01, "min": 0.01,
"max": 1.0, "max": 1,
"step": 0.001 "step": 0.001,
"description": "Brightness limit for the brightest patch."
}, },
{ {
"id": "gammaEncode", "id": "gammaEncode",
"label": "Display Gamma", "label": "Display Gamma",
"type": "float", "type": "float",
"default": 1.0, "default": 1,
"min": 1.0, "min": 1,
"max": 2.6, "max": 2.6,
"step": 0.01 "step": 0.01,
"description": "Gamma value used when Tone Curve is Display Gamma."
}, },
{ {
"id": "toneCurve", "id": "toneCurve",
@@ -59,7 +63,8 @@
"value": "rec709", "value": "rec709",
"label": "Rec.709" "label": "Rec.709"
} }
] ],
"description": "Output encoding used for the chart patches."
}, },
{ {
"id": "chartScale", "id": "chartScale",
@@ -67,56 +72,63 @@
"type": "float", "type": "float",
"default": 0.86, "default": 0.86,
"min": 0.25, "min": 0.25,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Overall size of the chart in frame."
}, },
{ {
"id": "gapSize", "id": "gapSize",
"label": "Gap Size", "label": "Gap Size",
"type": "float", "type": "float",
"default": 0.18, "default": 0.18,
"min": 0.0, "min": 0,
"max": 0.45, "max": 0.45,
"step": 0.01 "step": 0.01,
"description": "Spacing between exposure patches."
}, },
{ {
"id": "vertical", "id": "vertical",
"label": "Vertical", "label": "Vertical",
"type": "bool", "type": "bool",
"default": false "default": false,
"description": "Stacks patches vertically instead of horizontally."
}, },
{ {
"id": "reverseOrder", "id": "reverseOrder",
"label": "Reverse Order", "label": "Reverse Order",
"type": "bool", "type": "bool",
"default": false "default": false,
"description": "Reverses the dark-to-bright patch order."
}, },
{ {
"id": "backgroundLevel", "id": "backgroundLevel",
"label": "Background", "label": "Background",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 0.2, "max": 0.2,
"step": 0.001 "step": 0.001,
"description": "Background brightness behind the chart."
}, },
{ {
"id": "borderLevel", "id": "borderLevel",
"label": "Border", "label": "Border",
"type": "float", "type": "float",
"default": 0.08, "default": 0.08,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.001 "step": 0.001,
"description": "Brightness of patch borders."
}, },
{ {
"id": "sourceMix", "id": "sourceMix",
"label": "Source Mix", "label": "Source Mix",
"type": "float", "type": "float",
"default": 0.0, "default": 0,
"min": 0.0, "min": 0,
"max": 1.0, "max": 1,
"step": 0.01 "step": 0.01,
"description": "Blends the generated effect with the incoming video."
} }
] ]
} }