- 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
}%
- vert: vs-crt-line
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;
}
}
}%





