一、效果:
在很多游戏中为了玩家能看到墙面背后是否有敌人,会给被遮挡的敌人增加描边显示,效果如下:
参考:
https://zhuanlan.zhihu.com/p/81310476
https://zhuanlan.zhihu.com/p/358140547
二、所需知识
知识点梳理
1、PixelDepth 像素深度
当前被渲染的这个像素点与摄像机的距离。该节点没有输入接口,说明这个节点不能够获取特定位置的深度,只能获取像素着色器目前处理的这个像素点。
最基础的深度概念,我们说起深度时默认指的就是PixelDepth。
2、SceneDepth 场景深度
场景深度,当前场景的深度信息映射到屏幕上的一张图,从输入值有UV这一点来看就知道它是基于屏幕UV且可以获取非当前像素深度的。比较经常用在屏幕后处理里面。
3、CustomDepth 自定义深度
通过SceneTexture节点获取,用在屏幕后处理中,只需要在指定的物体上开启“渲染自定义深度通道”即“Render Custom Depth”,该物体的PixelDepth就会被渲染到一张单独的Buffer中。
这张Buffer是一张与SceneDepth很相似的Buffer,不同的地方在于它将没有开启CustomDepth的区域扣掉了,用一个极大的值去填充(10^8),得到了一张只有CustomDepth区域有效的Buffer。
假设场景中只有一个物体开启了自定义深度,整个场景的自定义深度应该是这样的:
4、CustomStencil/CustomDepthStencil 自定义模具/自定义深度模具
不要被它称呼中带有的Depth迷惑了(血泪教训),它根本不是深度值,而是一个模板值,这个模板值就是在细节面板设置的一个1-255的整数值,从个人的使用体验来讲它就像是一个图层的标识,可以将物体分类处理。