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