LWRP之多個camera顯示問題

在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,歡迎探討研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章