Example shaders
Some checks failed
CI / Native Windows Build And Tests (push) Failing after 7s
CI / React UI Build (push) Has been cancelled
CI / Windows Release Package (push) Has been cancelled

This commit is contained in:
2026-05-03 15:44:22 +10:00
parent ee6dbf7510
commit 52bf8c90ea
12 changed files with 447 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
{
"id": "pixelate",
"name": "Pixelate",
"description": "Reduces the effective X and Y pixel count independently to create a low-resolution blocky image.",
"category": "Utility",
"entryPoint": "shadeVideo",
"parameters": [
{
"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]
},
{
"id": "gridAmount",
"label": "Grid",
"type": "float",
"default": 0.0,
"min": 0.0,
"max": 1.0,
"step": 0.01
},
{
"id": "gridColor",
"label": "Grid Color",
"type": "color",
"default": [0.0, 0.0, 0.0, 1.0]
}
]
}

View File

@@ -0,0 +1,12 @@
float4 shadeVideo(ShaderContext context)
{
float2 count = max(pixelCount, float2(1.0, 1.0));
float2 cell = floor(context.uv * count);
float2 sampledUv = (cell + 0.5) / count;
float4 color = sampleVideo(clamp(sampledUv, 0.0, 1.0));
float2 local = frac(context.uv * count);
float gridLine = 1.0 - step(0.035, min(min(local.x, 1.0 - local.x), min(local.y, 1.0 - local.y)));
color.rgb = lerp(color.rgb, gridColor.rgb, gridLine * saturate(gridAmount) * gridColor.a);
return color;
}