相机 targetTexture 渲染显示问题,显示异常!!!

上面是正常的展示,通过一个相机的targetTexture渲染到sprite上后,变成了下面的显示
透明度颜色都发生了较大的变化

版本 : 2.3.3


项目中相关代码如下

    const texture = new cc.RenderTexture();
    // texture['_premultiplyAlpha'] = true;
    texture.initWithSize(640, 1136);
	
    const spriteFrame = new cc.SpriteFrame();
    spriteFrame.setTexture(texture);
    this.camera_water.targetTexture = texture;
    this.sp_water_show.spriteFrame = spriteFrame;
    // sp_water_show.srcBlendFactor = cc.macro.BlendFactor.ONE;

下面是工程文件,跪求大佬指点 , @引擎组大佬
test.rar (679.0 KB)

@引擎组,很急啊,,,有人知道原因吗

对于半透明元素,renderTexture 读不到正确的 alpha 信息,你取消勾选 camera_water 的 clearColor,然后再设置 sp_water_show.srcBlendFactor = cc.macro.BlendFactor.ONE。

按你说的改了以后,还是会有一些差别。

而且,如果想在显示的图片上做shader, 过滤掉透明度比较小的像素,会有问题,还是按照的最上面那个有黑块的图片过滤的
下面是过滤透明度小于0.6的shader,以及显示图片

void main () {
vec4 o = vec4(1, 1, 1, 1);

#if USE_TEXTURE
  CCTexture(texture, v_uv0, o);
#endif

o *= v_color;

ALPHA_TEST(o);

if(o.a < 0.6){
  discard;
}else{
  // o.a = vec4(0.0);
}

gl_FragColor = o;
}

大佬,请问知道怎么解决吗? 还有renderTexture 读不到正确的 alpha 信息 这个BUG会修复吗?@引擎组

请问有人知道怎么解决吗?

@引擎组 请问看到了吗? 有空说一下有什么好的解决方法吗?