updates
This commit is contained in:
@@ -4,6 +4,22 @@
|
||||
"description": "VHS with wiggle, smear, and YIQ-style color separation inspired by nostalgic analog references.",
|
||||
"category": "Glitch",
|
||||
"entryPoint": "shadeVideo",
|
||||
"passes": [
|
||||
{
|
||||
"id": "tapeSmear",
|
||||
"source": "shader.slang",
|
||||
"entryPoint": "buildTapeSmear",
|
||||
"inputs": ["layerInput"],
|
||||
"output": "tapeSmear"
|
||||
},
|
||||
{
|
||||
"id": "final",
|
||||
"source": "shader.slang",
|
||||
"entryPoint": "finishVhs",
|
||||
"inputs": ["tapeSmear"],
|
||||
"output": "layerOutput"
|
||||
}
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"id": "wiggle",
|
||||
|
||||
@@ -158,10 +158,15 @@ float3 blurVhs(float2 uv, float d, int sampleCount)
|
||||
return sum;
|
||||
}
|
||||
|
||||
float4 shadeVideo(ShaderContext context)
|
||||
float distortedTapeTime(ShaderContext context)
|
||||
{
|
||||
return context.time + context.startupRandom * 113.0;
|
||||
}
|
||||
|
||||
float4 buildTapeSmear(ShaderContext context)
|
||||
{
|
||||
float2 uv = context.uv;
|
||||
float time = context.time + context.startupRandom * 113.0;
|
||||
float time = distortedTapeTime(context);
|
||||
float framecount = frac(time * wiggleSpeed / 7.0) * 7.0;
|
||||
int sampleCount = int(clamp(blurSamples, 3.0, 15.0) + 0.5);
|
||||
|
||||
@@ -189,6 +194,13 @@ float4 shadeVideo(ShaderContext context)
|
||||
float q = rgb2yiq(qBlur).b;
|
||||
|
||||
float3 color = yiq2rgb(float3(y, i, q)) - pow(s + e * 2.0, 3.0);
|
||||
return float4(saturate(color), 1.0);
|
||||
}
|
||||
|
||||
float4 finishVhs(ShaderContext context)
|
||||
{
|
||||
float time = distortedTapeTime(context);
|
||||
float3 color = sampleVideo(context.uv).rgb;
|
||||
|
||||
float2 centered = context.uv * 2.0 - 1.0;
|
||||
centered.x *= context.outputResolution.x / max(context.outputResolution.y, 1.0);
|
||||
@@ -238,3 +250,8 @@ float4 shadeVideo(ShaderContext context)
|
||||
|
||||
return float4(saturate(color), 1.0);
|
||||
}
|
||||
|
||||
float4 shadeVideo(ShaderContext context)
|
||||
{
|
||||
return finishVhs(context);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user