趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边( 四 )


}
在 Shader 最后根据边缘检测出来的edge , 对原图像和边缘描边颜色进行插值 , 我们就搞定了 。
趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边
本文插图
只针对 Stencil 参考值为 2 的 bunny 描边
四、其他效果展示
如果我们让 cube 的材质 Shader 也写入 Stencil值 , 并且是和小兔子 bunny 的Stencil值不同(比如是1) , 但用于StencilBuffer提取的材质 Shader 还是用和 bunny 相同的2进行模板测试的话 , 提取出来的颜色图像形式的StencilBuffer长这样:
趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边
本文插图
cube 写入值 1 , bunny 写入 2 ,StencilProcessMat 模板测试值为 2 的 Stencil Buffer
描边效果长这样:
趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边
本文插图
cube 写入值 1 , bunny 写入 2 , StencilProcessMat 模板测试值为 2 的描边效果
为啥会这样?有知道的同学欢迎在评论区留言噢~~(看看能钓到多少活鱼儿)
五、下一章预告
Stencil 后处理原理的传送门视觉效果!!!
趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边
本文插图
参考资料和引用
[1] 《英雄联盟 LoL》中后备的小兵英雄后处理 Stencil 描边方法https://technology.riotgames.com/news/trip-down-lol-graphics-pipeline
[2] Unity 手册渲染纹理介绍https://docs.unity3d.com/Manual/class-RenderTexture.html
[3] 乐园:利用 StencilBuffer 实现局部后处理描边https://zhuanlan.zhihu.com/p/95747680
[4] Unity Shader - 边缘检测https://zhuanlan.zhihu.com/p/138561005
[5] UWA:OnRenderImage 提问https://answer.uwa4d.com/question/5e153e7afd2e373ffa7eaae5
[6] Unity 生命周期的 Scene rendering 渲染阶段https://docs.unity3d.com/Manual/ExecutionOrder.html
其他比较杂的 , 算是收集资料的时候顺带补充了知识

  1. 有讲到 depth/stencil buffer 的关系
    https://blog.csdn.net/weixin_34112900/article/details/86272901
  2. CommandBuffer.Blit isn't stencil buffer friendly
    https://forum.unity.com/threads/commandbuffer-blit-isnt-stencil-buffer-friendly.432776/
  3. 有讲到 Graphics 的 activeXXXBuffer 和 SetRenderTarget 用法
    https://www.jianshu.com/p/4e8162ed0c8d
  4. 口袋妖怪 X/Y 制作技法
    https://www.cnblogs.com/TracePlus/p/4299428.html
  5. Unity 后处理 性能优化
    https://zhuanlan.zhihu.com/p/39850106
结尾碎碎念
啊 , 这篇好长 , 写了两天好久 。 看了一下之前的文章排版也是惨不忍睹 , 瞎琢磨了一下下排版(感觉还行吧 。。 吧) 。 希望到时候投稿不用麻烦小编操心改排版就好了 。
后续可能做做其他系列 Shader 文章 , 但也不一定 , 有可能是零碎的 Shader 效果 。
【趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边】临近学期末 , 作业也越来越多 , 当初定下一星期一篇真是越来越难了/(ㄒoㄒ)/~~(咕咕咕
趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边
本文插图
趣投稿|走进 Stencil Buffer 系列 4:Stencil 后处理局部描边
本文插图


推荐阅读