spine描边
- 示例工程:ccc3_SpineEffect.zip (1.3 MB)
前言
- Cocos Creator 3.8.7
- 只是简单示例,仅供参考。
- 未进行多平台兼容性测试。
方案简介
方案一. shader使用多pass实现

- 基础原理:
- 5个pass实现描边
- 1.绘制向下偏移描边宽度的单色spine
- 2.绘制向左偏移描边宽度的单色spine
- 3.绘制向右偏移描边宽度的单色spine
- 4.绘制向上偏移描边宽度的单色spine
- 5.绘制原本spine
- 如果4方向偏移不够,可自行修改为8方向偏移
- 5个pass实现描边
- 存在问题:
- 不能合批
- 几个pass就几个drawcall
- 堆叠部分会看不见
- 性能差
方案二. shader 多方向采样
- 基础原理:
- 本质是把前面多个偏移绘制改为进行多偏移纹理采样后的单次绘制
- 特殊处理在于将绘制宽度转化为纹理坐标偏移
- 绘制每块区域纹理宽高都不同?
- 暂未实现
方案三. ReanderTexture + Sprite描边

- 存在问题:
- 测试发现,动起来较快时描边跟不上
- 对于用单张全屏的渲染纹理。全部spine的描边颜色宽度只能保持一致。
- 对于多张渲染纹理。 数量一多分layer有点问题啊。
