Unity學(xué)習(xí)筆記 Vol.90 URP遮擋剔除
????使用URP的自定義渲染過程,我們可以輕松創(chuàng)建遮擋剔除的效果。首先,我們創(chuàng)建一個(gè)ShaderGraph,選擇Unlit Graph,命名為Occlusion。


ShaderGraph很簡(jiǎn)單,按上圖連接就行了。
再創(chuàng)建一個(gè)材質(zhì),命名為Occlusion。

創(chuàng)建URP Asset如上圖,如果Project Settings的Graphic沒有設(shè)置,先設(shè)置好。
創(chuàng)建好URP Asset后,會(huì)送你一個(gè)UniversalRenderPipelineAsset_Renderer文件。

點(diǎn)擊Add Renderer Feature按鈕,按下圖添加兩個(gè)Feature。

以我的項(xiàng)目為例子,添加一個(gè)TrainsBehind和一個(gè)TrainFront,在Filter的LayerMask設(shè)置為我們想要遮擋剔除的Layer(之前單獨(dú)設(shè)置一個(gè)專門的Layer)。
在TrainsBehind的Overrides的Material里面,設(shè)置剛才創(chuàng)建的Occlusion材質(zhì),再將Depth打勾,將Depth Test設(shè)置為Greater。在TrainsFront只要將LayerMask設(shè)置好,其它不用設(shè)置。

下面可以看到我的項(xiàng)目中,火車被遮擋的部分以O(shè)cclusion的材質(zhì)顯示出來。而沒有遮擋的部分以正常的方式顯示。
標(biāo)簽: