LWRP之多个camera显示问题

2020-09-18 14:03发布

在LWRP渲染管线下面Unity2019.3之后叫做(Universal RP),场景中放了两个相机。大家会发现只有后面渲染的摄像机的画面才会显示到屏幕上。

第一个相机到图中红色第一步(FInal Blit Pass)的时候可以看到它使用的shader是Blit.shader它的blend的模式是:Blend One Zero

第二个相机也是这样处理,所以第一个相机的所有像素都不会显示,因为被第二个相机给删除了。

处理方式:将Blit.shader的Blend One Zero 改成:Blend One One这样两个相机的东西都可以渲染到屏幕上。

如下图:

如果你使用了PostProcess,那么也要将:UberPost.shader的blend模式改成Blend OneMinusSrcColor One,因为如果是有PostProcess那么RenderCamra会走 Render PostProcessing Effects这个过程,如下图:

注意:因为摄像机是Final Blit Pass的时候使用了Blend One Zero。如果你相机要渲染到一个rendertexture上,那么是可以得到该相机的渲染数据的。因为它不会走Final Blit Pass过程。如图下图所示摄像机渲染到rendertexture的流程没有Final Blit Pass:

这样的话,也可以用一个摄像机看某一个物体,然后将该摄像机的设置成rendertexture并且将该摄像机的rendertxture显示到ui上。

如果你不确定摄像机渲染到屏幕上最终使用的是哪个shader。你可以打开FrameDebug查看是使用哪个shader,然后把该shader的Blend模式改掉即可,如下图查看shader:

后面会继续深入研究:Universal RP

本人qq:344810449,欢迎探讨研究。



作者:unity游侠

链接:https://blog.csdn.net/y90o08u28/article/details/103507382

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。