UI fix
All checks were successful
CI / React UI Build (push) Successful in 10s
CI / Native Windows Build And Tests (push) Successful in 2m26s
CI / Windows Release Package (push) Successful in 2m28s

This commit is contained in:
Aiden
2026-05-10 21:27:13 +10:00
parent 8fcb51d140
commit 46129a6044
6 changed files with 142 additions and 76 deletions

View File

@@ -1,80 +1,110 @@
{
"id": "feedback-highlight-accumulator",
"name": "Feedback Highlight Accumulator",
"description": "Demonstrates shader-local feedback by storing a rolling 4-frame per-pixel highlight history in RGBA and displaying only the newest 3 frames. The highlight selection is an approximation based on a luminance threshold rather than an exact percentile reduction.",
"name": "Feedback Background Memory",
"description": "Demonstrates writable full-frame shader feedback by learning a persistent per-pixel background model, then comparing the live frame against that learned plate. This cannot be reproduced by only reading ordinary history frames because the shader writes its own evolving state back each frame.",
"category": "Feedback",
"entryPoint": "buildHistory",
"entryPoint": "updateBackgroundModel",
"passes": [
{
"id": "history",
"id": "background",
"source": "shader.slang",
"entryPoint": "buildHistory",
"output": "historyBuffer"
"entryPoint": "updateBackgroundModel",
"output": "backgroundModel"
},
{
"id": "display",
"source": "shader.slang",
"entryPoint": "displayHistory",
"entryPoint": "displayBackgroundDifference",
"inputs": [
"historyBuffer"
"backgroundModel"
],
"output": "layerOutput"
}
],
"feedback": {
"enabled": true,
"writePass": "history"
"writePass": "background"
},
"parameters": [
{
"id": "highlightThreshold",
"label": "Highlight Threshold",
"id": "learnRate",
"label": "Learn Rate",
"type": "float",
"default": 0.92,
"min": 0.5,
"max": 1.5,
"default": 0.03,
"min": 0.001,
"max": 0.5,
"step": 0.001,
"description": "Approximate cutoff for the brightest parts of the frame."
"description": "How quickly the stored background model adapts toward the current frame."
},
{
"id": "differenceThreshold",
"label": "Difference Threshold",
"type": "float",
"default": 0.12,
"min": 0.001,
"max": 1.0,
"step": 0.001,
"description": "Minimum difference between the live frame and stored background before the overlay becomes visible."
},
{
"id": "softness",
"label": "Threshold Softness",
"type": "float",
"default": 0.05,
"default": 0.08,
"min": 0.001,
"max": 0.25,
"max": 0.5,
"step": 0.001,
"description": "Softens the threshold so near-highlights can contribute gradually."
"description": "Softens the transition around the difference threshold."
},
{
"id": "accumulateAmount",
"label": "Contribution Amount",
"id": "overlayOpacity",
"label": "Overlay Opacity",
"type": "float",
"default": 0.6,
"min": 0.0,
"max": 2.0,
"step": 0.001,
"description": "Strength of each frame's highlight contribution before it is shifted into the rolling history."
},
{
"id": "displayGain",
"label": "Display Gain",
"type": "float",
"default": 2.5,
"min": 0.0,
"max": 8.0,
"step": 0.01,
"description": "Brightness applied to the sum of the most recent three stored highlight samples."
},
{
"id": "baseMix",
"label": "Base Mix",
"type": "float",
"default": 0.25,
"default": 0.85,
"min": 0.0,
"max": 1.0,
"step": 0.01,
"description": "Amount of the live source image kept under the recent highlight history display."
"description": "Strength of the motion/difference overlay on top of the live image."
},
{
"id": "backgroundMix",
"label": "Background Mix",
"type": "float",
"default": 0.15,
"min": 0.0,
"max": 1.0,
"step": 0.01,
"description": "Amount of the learned background model shown underneath the live source."
},
{
"id": "overlayTint",
"label": "Overlay Tint",
"type": "color",
"default": [
1.0,
0.45,
0.08,
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
],
"description": "Tint used for areas that differ from the learned background."
}
]
}