多图层节点分离红蓝效果,怎么与背景混合?

版本cocos3.8.8,需要做一个红蓝层分离,为了让不同层级的节点有单独的分离视距,就每个节点都挂了这个效果,但是除了背景效果比较好,其他图层都会有红蓝的纯色描边与背景完全不融合,如果调透明度他又会颜色变的很暗这个问题应该怎么解决?难道只能获取所有节点图层依次渲染到一个节点上再融合吗?

这是我的着色器代码

CCProgram sprite-fs %{
precision highp float;
#include <builtin/internal/embedded-alpha>
#include <builtin/internal/alpha-test>

in vec4 color;

in vec2 uv0;
#pragma builtin(local)
layout(set = 2, binding = 12)uniform sampler2D cc_spriteTexture;

uniform MyBuffer {
  float u_offset;
  float u_leftIntensity;
  float u_rightIntensity;
};

vec4 frag() {
  vec4 o = vec4(1, 1, 1, 1);
  
  // o *= CCSampleWithAlphaSeparated(cc_spriteTexture, uv0);       
  vec4 leftCol = CCSampleWithAlphaSeparated(cc_spriteTexture, uv0 + vec2(u_offset * 0.001, 0));
  vec4 rightCol = CCSampleWithAlphaSeparated(cc_spriteTexture, uv0 - vec2(u_offset * 0.001, 0));
  leftCol.gb = vec2(0.0, 0.0);
  rightCol.r = 0.0;
  vec4 col;
  col.rgb = leftCol.rgb * u_leftIntensity + rightCol.rgb * u_leftIntensity;
  col.a = leftCol.a* rightCol.a;
  o *= col;
  ALPHA_TEST(o);
  return o;
}
}%