Unity学习笔记 Vol.90 URP遮挡剔除
使用URP的自定义渲染过程,我们可以轻松创建遮挡剔除的效果。首先,我们创建一个ShaderGraph,选择Unlit Graph,命名为Occlusion。


ShaderGraph很简单,按上图连接就行了。
再创建一个材质,命名为Occlusion。

创建URP Asset如上图,如果Project Settings的Graphic没有设置,先设置好。
创建好URP Asset后,会送你一个UniversalRenderPipelineAsset_Renderer文件。

点击Add Renderer Feature按钮,按下图添加两个Feature。

以我的项目为例子,添加一个TrainsBehind和一个TrainFront,在Filter的LayerMask设置为我们想要遮挡剔除的Layer(之前单独设置一个专门的Layer)。
在TrainsBehind的Overrides的Material里面,设置刚才创建的Occlusion材质,再将Depth打勾,将Depth Test设置为Greater。在TrainsFront只要将LayerMask设置好,其它不用设置。

下面可以看到我的项目中,火车被遮挡的部分以Occlusion的材质显示出来。而没有遮挡的部分以正常的方式显示。