cocos-engine icon indicating copy to clipboard operation
cocos-engine copied to clipboard

多摄像机在原生环境下渲染异常

Open a1076559139 opened this issue 1 year ago • 7 comments

Cocos Creator version

3.8.2

System information

IOS必现 Android未知

Issue description

场景中有两个相机(都被添加为常驻节点)

有一个相机不负责渲染,只是为了清空颜色、深度与模板缓冲。 D-Chat_20240403185134

另一个相机负责渲染UI D-Chat_20240403185145

这样做的目的是为了,某些UI中如果使用相机的话,不用费心去维护到底自己的相机是不是第一个渲染的(因为第一个相机最好把clearFlags设置为SOLID_COLOR,而如果不是第一个相机则几乎一定不能设置为SOLID_COLOR)

这样做之后,在原生环境会黑屏,无法显示任何UI,也没有报错

Relevant error log output

No response

Steps to reproduce

测试项目地址

Minimal reproduction project

No response

a1076559139 avatar Apr 03 '24 11:04 a1076559139

后面继续测试发现,原生环境(只测试了IOS)多Camera表现与Web/小游戏不一致。 Web/小游戏正常,原生却会出现黑屏、画面残留等情况。

a1076559139 avatar Apr 10 '24 11:04 a1076559139

@minggo 我今天无意间测试,终于知道是怎么引起的了。 原因有个相机的Priority属性在编辑器内显示为0,但其实它实际的在.scene中存储的值是-1,运行时打印log,显示也是-1,把它正确的设置为0就没这个渲染异常的问题了

a1076559139 avatar Jul 05 '24 04:07 a1076559139

谢谢这个信息。

原因有个相机的Priority属性在编辑器内显示为0,但其实它实际的在.scene中存储的值是-1

相机是新建出来没改动,还是有什么操作呢?

minggo avatar Jul 05 '24 07:07 minggo

是以前创建的,3.6版本甚至更早的版本,具体记不清了

a1076559139 avatar Jul 05 '24 08:07 a1076559139

企业微信截图_17205086714802 @wuzhiming

GengineJS avatar Jul 09 '24 07:07 GengineJS

这个问题跟多相机没有关系,复现方式是:

  1. 新建一个场景
  2. 修改相机 priority 为 -1
  3. 保存,编辑器会把 priority 的 edit框内的值显示为 0,但是实际序列化到 .scene 中,还是 -1

dumganhar avatar Jul 19 '24 02:07 dumganhar

这个问题跟多相机没有关系,复现方式是:

  1. 新建一个场景
  2. 修改相机 priority 为 -1
  3. 保存,编辑器会把 priority 的 edit框内的值显示为 0,但是实际序列化到 .scene 中,还是 -1

a1076559139 avatar Jul 19 '24 03:07 a1076559139