Spine描边的另一种实现方法

之前写过一篇Spine官方提供的描边方案,今天试着用换色的方法实现。
原理很简单:

  • 用PS给导出的图片添加外发光,颜色为FilterColor


    image.png
  • 修改Spine原Shader,添加换色方法,然后在frag里调用一下替换掉原有颜色即可

 Outline Color为最终需要的描边颜色,可调整透明度
 Filter Color是图片里的描边颜色,找一个图片里用不到的色调即可
 Filter Power是取色阈值,如果上面颜色选的合适,不重要
image.png

关键代码:


image.png

image.png

比较:

  • 比官方方案节省计算量(如果把换色的if去了就更好了)
  • 描边粗细可由美术人员控制,但官方可以在Unity里调整粗细渐变,更加灵活
  • 做完动画需要P一次图,当然也可以整合为脚本自己添加

附:imagemagick命令自动生成外发光

convert test.png -bordercolor none -border 10x10 -background purple -alpha background -channel A -blur 0x5 -level 0,50% out.png

你可能感兴趣的:(Spine描边的另一种实现方法)