Canvas和3D游戏场景需要不同的相机吗?

https://docs.cocos.com/creator/3.0/manual/zh/getting-started/first-game/
跟着官方教程做到一半遇到了一个问题:
相机不能同时看Player和Canvas,如果把Canvas的相机设置为Player下的相机,相机的位置就会改变,无法看到Player
游戏场景和UI能否只使用一个相机?
如果必须要用两个的话,相机的切换方式是如何呢?教程里并没有讲解到,谢谢帮助!

下载了官方工程文件,发现确实需要两个相机,步骤如下:
把UI相机的Priority数值设置为大于主相机(值越小越优先渲染)
将ClearFlags设置为DONT_CLEAR(相机的缓冲清除标志位,指定帧缓冲的哪部分要每帧清除。
DONT_CLEAR:不清空)
QQ截图20210414150426
QQ截图20210414150646

应该用only depth才对

我试了一下,也有同样效果,请问这个DEPTH_ONLY和DONT_CLEAR的区别是?..我其实没太理解其中的意思

dont clear是不对帧缓冲做清除,会导致每帧内容都会在下一帧被渲染出来,残留效果。 depth意思是多张颜色缓冲做叠加然后传给帧缓冲的

其实一个相机渲染的结果存在颜色缓冲中的,两个相机就有2个颜色缓冲 那么最终屏幕是只需要一个缓冲(帧缓冲) 所以2个颜色缓冲要混合(就是由depth指定的)

所以是因为Canvas是平面2D,所以可以把深度清除了节省运算。但是为什么选择了SOLID_COLOR(清空颜色、深度与模板缓冲),会看不到主相机了,只清除深度看得到,清除深度和颜色反而看不到了?

他这里的深度,不是顶点深度,是多个相机之间优先级的意思:joy:

还是不太懂,相机选择SOLID_COLOR才能看到该相机的场景,选择DEPTH_ONLY或DONT_CLEAR就看不到。相机清除了自己的颜色、深度与模板缓冲才能被看到?不清除反而看不到了?

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。