Stencil是指利用深度buffer的后8位数据进行bit mask信息的绘制,从而制作类似角色mask遮罩等效果,下面就在UE中进行制作。
1.首先在Project Settings项目设置中开启stencil,搜索stencil关键字在Custom Depth Stencil Pass选项中设置为Enabled with Stencil:
2.找一个用来测试Stencil效果的StaticMesh,搜索关键字custom,找到参数Renedr CustomDepth Pass勾选,并设置Stencil通道为1:
3.接下来去调试视图中看看效果,选择Buffer Visualization-Custom Stencil,查看自定义Stencil数据调试视图:
4.可以看见设置给StaticMesh对象的Stencil生效了:
5.接下来要制作一个后处理特效,去应用Stencil信息从而制作效果。新建一个材质球,将材质类型设置为PostProcess后处理材质:
6.创建节点SceneTexture拿到场景材质信息,在节点的设置面板Scene Texture Id中通过PostProcessInput0拿到画面内容,通过CustomStencil拿到Stencil信息,面板中选择对应下拉选项即可:
7.回到场景中,找到PostProcessVolume,配置自定义后处理,添加PPSMat后处理材质球:
8.应用后,最终效果如下,Stencil信息已生效:
Tips:一般来讲Stencil是0-255的数值范围,后处理材质也能读到大于1的Stencil信息,所以做判断时可以用Subtract配合Clamp做插值即可:
本文参考自UE官方教程:https://www.bilibili.com/video/BV1hA411n7vZ