【Unity】从零使用Amplify Shader - 超简单2D外轮廓

前言:

超简单方案又来了,今天我们做的也是一个在游戏中很常见的外轮廓,实际上外轮廓的实现方案有很多种,Shader层面这里推荐冯乐乐女神《Unity Shader入门精要》,里面有比较详细的描述很原理。接下来我们用ASE来简单实现一下2D中的轮廓。

创建材质:

● 右键 - Create - Amplify Shader - Legacy - Unlit
● 在创建出的Shader上右键 - Create - Material - 起个名字
● 打开ASE编辑器。

初步实现:
  • 首先我们还是创建一个贴图采样节点,然后添加一个需要产生轮廓的贴图。
  • 接下来就是重点了(没想到重点来的这么快吧),创建一个Step节点,将其的Alpha值与我们的贴图连接:

在这里插入图片描述

  • 我们可以看到,好像黑的区域变白了,白的区域变黑了。那么为什么会出现上面这个效果呢:

在这里插入图片描述
在这里插入图片描述

  • 看下释义,很简单,就是非零即一,然后通过公式计算B和A的关系,得出的结果就是最终图像。
  • 那么我们就可以通过调整Step的这个B的值,得出不一样的结果:

在这里插入图片描述

  • 这个时候是不是已经可以想象到如何得到边缘了,没错:外轮廓的重点就是得到边缘!
  • 接下来使用减法节点,让这两张图象相减,然后再让边缘乘上一个颜色,最后再与原图相加:

在这里插入图片描述

  • 到此算是已经基本完成了,以上一种2D外轮廓的原理:利用剪影相减再叠加的方案。
  • 最后把颜色属性暴露出去,在外面调整颜色看看效果吧:

在这里插入图片描述
在这里插入图片描述

总结:

今天又了解到了一种快速实现2D外轮廓的方法,当然了这种方法还是比较有局限性的。比如在3D中可能更多会使用法线外扩等方案,另外如果有骨骼动画的2D图也会产生一些问题。另外实际应用中,贴图大多会被整合在一张大图中,那么就得额外判断哪些地方需要有轮廓哪些不需要了。挑战用自己的想象力去实现外轮廓吧!(提示:UV偏移)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值