UnityShader实现遮挡描边
第一篇博客,分享一个有趣的功能:实现物体被遮挡时描绘出物体的边缘。这种效果在游戏中很常见,也是偶然在网上看到别人的实现于是自己总结并改进了一下。
先上几张效果图,也是自己方案的提升吧:
第一种是最简单的实现方式:通过stencil的来判断物体边界。当然缺点也显而易见:没有被遮挡的部分也被高亮了。
第二种运用depthmap和后渲染的方法来判断物体被遮挡的部分,有效解决了第一种的缺点。但是觉得还是有点不太满意啊,因为被遮挡的物体没法互相再次遮挡实现描边。
第三种,可能有点过于眼花缭乱了,乍一看好像还没第二种好。当然,效果总是用来满足需求的嘛,第二种与第三种可以满足产品的各种需求。(手动滑稽)第三种原理上和第二种没太大差别,主要对输出的图像再次渲染实现多层遮挡的效果。
原理稍后整理上传