自定义渲染管线新增后效异常

  • Creator 版本:3.8.6
  • 目标平台:chrome浏览器
  • 重现方式:必现。
    大家好,我这边尝试自己写渲染管线,跟着文档https://docs.cocos.com/creator/3.8/manual/zh/render-pipeline/write-render-pipeline.html 提取了内置的pipeline代码,并重命名改造。我这试图新增一个crt 扫描线的passbuilder,发现要么黑屏,要么纹理不对(扫描线可以滚动,但是背景图类似默认图片),对着文档的例子和问了好多个AI,搞了好多天,都没有头绪(个人认为是纹理出错了),所以想问问大佬们,我这个是哪里写错了,谢谢了。
    图片:
    相关代码链接pipeline.zip (13.8 KB)
    effect代码:




    我尝试简化shader,只拿输入纹理,还是不行,但是直接把颜色设置别的,例如红色,是可以的

1 重启重启重启,creator 3x编辑器有各种莫名其妙难以明状的bug
2 你的custom pipline crt pass 应该没有问题。
3 我用一个了一个简单shader测试,能正确采样颜色贴图的。
4 只是简单测试屏幕颜色采样,没有使用你的shader , 复制内置shader修改的
5 以下是我的简单测试shader 和 测试截图
// Copyright © 2017-2020 Xiamen Yaji Software Co., Ltd.

CCEffect %{
techniques:

  • passes:
    • vert: vs-crt-line
      frag: fs-crt-line
      pass: crt-scanline
      rasterizerState:
      cullMode: none
      depthStencilState:
      depthTest: false
      depthWrite: false
      }%

CCProgram vs-crt-line %{
precision highp float;
#include <legacy/decode-standard>
#include <post-process/pipeline>

out vec2 v_uv;

void main () {
StandardVertInput In;
CCDecode(In);
FLIP_VULKAN_NDC(In.position);
gl_Position = In.position;

v_uv = a_texCoord;
}

}%

CCProgram fs-crt-line %{
precision highp float;
in vec2 v_uv;

#pragma rate mainTexture pass
uniform sampler2D mainTexture;

layout(location = 0) out vec4 fragColor;
void main () {
vec4 color = texture(mainTexture, v_uv);
float remainder = mod(v_uv.y, 0.02);
if (remainder < 0.005) {
fragColor = vec4(1.0, 0.0, 0.0, 1.0);
} else {
fragColor = color;
}
}
}%