**Helped Needed** Shader Help - Niche coding problem

aiscambaiter

New Member
Hi everyone,
I’m trying to create a shader for the OBS Shaderfilter plugin to add a green glowing border around a circular image. The border’s visibility should depend on the audio level of a source (from 0.0 to 1.0).


My shader code looks like this:


-------------------------
uniform float4 border_color = {0.0, 1.0, 0.0, 1.0}; // green RGBA
uniform float audio_level = 0.0; // from 0.0 to 1.0


Texture2D image : register(t0);
SamplerState image_sampler : register(s0);

float4 main_ps(float2 uv : TEXCOORD) : SV_Target
{
float border_thickness = 0.05;

// Calculate distance from edge (uv runs 0 to 1)
float2 edge_dist = min(uv, 1.0 - uv);
float min_dist = min(edge_dist.x, edge_dist.y);

// If within border thickness, show border with glow scaled by audio level
if (min_dist < border_thickness) {
return border_color * audio_level;
}


return image.Sample(image_sampler, uv);
}

technique11 Render
{
pass P0
{
PixelShader = compile ps_4_0 main_ps();
}
}
-----------------------------------

When I try to load this shader in OBS Shaderfilter, I get these errors:


  • (null)(6, 17): Expected 'type'
  • (null)(7, 28): Expected 'type'
  • (null)(27, 1): Unexpected code segment

I’m not sure what these errors mean exactly or how to fix them. I suspect I might be misunderstanding how to declare uniforms or samplers properly in OBS shaders, or how OBS Shaderfilter expects the shader to be structured.


If anyone can help me correct this shader or provide a working example for an audio-level-dependent glowing border effect, I would really appreciate it!


Thanks so much!
 
Top