- Creator 版本:3.8.8
- 目标平台: web预览就无法显示
- 重现方式:画面放一个sprite,feature打开WebGPU
- 首个报错:没报错,但画面的sprite没显示
- 之前哪个版本是正常的:无
- 编辑器操作系统: macos 15.7
- 重现概率:必现
我有试着修改引擎中的顶点画出边框
atlas的画不出来,但单张sprite可以画出来
但不知为何内容就是无法显示
我有试着修改引擎中的顶点画出边框
atlas的画不出来,但单张sprite可以画出来
但不知为何内容就是无法显示
有可能是纹理格式问题
追了一下代码发现是
rendering/custom/web-program-library.ts
在 findBinding(shaderInfo,name)
这边绑定的问题
把代码改成
let lastMatch: { set: number, binding: number } | null = null;
for (const v of shaderInfo.blocks) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
for (const v of shaderInfo.buffers) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
for (const v of shaderInfo.samplerTextures) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
for (const v of shaderInfo.samplers) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
for (const v of shaderInfo.textures) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
for (const v of shaderInfo.images) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
for (const v of shaderInfo.subpassInputs) {
if (v.name === name) lastMatch = { set: v.set, binding: v.binding };
}
if (lastMatch) return lastMatch;
这样就可以跑起来
但是跟现有的机制太多不相容了
跟我的pipeline组合起来也会导致其他问题…
看来这边还处于开发中阶段…只能暂时放弃了