LWRP渲染管线下的UI渲染透明图片混乱问题

先上图看我们遇到的问题,如下图:


LWRP渲染管线下的UI渲染透明图片混乱问题_第1张图片

遇到的问题

 

问题描述:
场景中有一个3d摄像机和一个2d摄像机,可以看到右图圈中的图是半透明的,会直接透过UI看到场景里的物体。这是错误的显示效果。
我们使用的unity版本是:2018.4.0
LWRP版本是:4.10.0
UI模式用的overlay方式渲染效果就没问题,用camera渲染试就会出错。如下图:


LWRP渲染管线下的UI渲染透明图片混乱问题_第2张图片

摄像机模式比较.png

看了一下LWRP的源码,找到如下代码块。


LWRP渲染管线下的UI渲染透明图片混乱问题_第3张图片

lwrp处理相机depth代码

 

lwrp把相机只有skybox会处理depth相机,其它的都会做清除处理,我们自己加入UI相机相关的处理。

最后通过改LWRP的源码解决,自己加入相机的depth处理。


LWRP渲染管线下的UI渲染透明图片混乱问题_第4张图片

更改后代码

 

这只是第一步,现在我们的ui还不能与3d界面做叠加,我们要在ui相机上做一下设置,如下图:


LWRP渲染管线下的UI渲染透明图片混乱问题_第5张图片

ui相机设置


到这步后,我们的UI就基本正常了。
不过还是发现ui的元素有一些像素扩散,看起来就像是有点糊了。

这个是因为我们用的颜色空间是线性空间,我们图片一开始设计是在线性空间设计的,所以可以图片还要美术重新修改。对比原图的结果如下:(右边是原图,左边是游戏里的效果)


比较图

比较图

以上只是基于自己处理问题的总结,如果有什么不对,请留言我讨论。

你可能感兴趣的:(Unity)