先上图看我们遇到的问题,如下图:
![](https://img.haomeiwen.com/i9051543/6fa18e3209af406c.png)
问题描述:
场景中有一个3d摄像机和一个2d摄像机,可以看到右图圈中的图是半透明的,会直接透过UI看到场景里的物体。这是错误的显示效果。
我们使用的unity版本是:2018.4.0
LWRP版本是:4.10.0
UI模式用的overlay方式渲染效果就没问题,用camera渲染试就会出错。如下图:
![](https://img.haomeiwen.com/i9051543/0604559c2994cb8a.png)
看了一下LWRP的源码,找到如下代码块。
![](https://img.haomeiwen.com/i9051543/c1a453db4cc2cf24.png)
lwrp把相机只有skybox会处理depth相机,其它的都会做清除处理,我们自己加入UI相机相关的处理。
最后通过改LWRP的源码解决,自己加入相机的depth处理。
![](https://img.haomeiwen.com/i9051543/4ccacc92fa89c6da.png)
这只是第一步,现在我们的ui还不能与3d界面做叠加,我们要在ui相机上做一下设置,如下图:
![](https://img.haomeiwen.com/i9051543/673c73f23f1430ec.png)
到这步后,我们的UI就基本正常了。
不过还是发现ui的元素有一些像素扩散,看起来就像是有点糊了。
这个是因为我们用的颜色空间是线性空间,我们图片一开始设计是在线性空间设计的,所以可以图片还要美术重新修改。对比原图的结果如下:(右边是原图,左边是游戏里的效果)
![](https://img.haomeiwen.com/i9051543/dc062b9ace39acd5.png)
以上只是基于自己处理问题的总结,如果有什么不对,请留言我讨论。
网友评论