【 3.x 性能优化 】Spine 多纹理合批

榜单小游戏,越来越多好品质的游戏,

对2d动画和质感有更高要求,都会选择使用Spine。

商店地址

Spine 优点:

  • 1.动感质感好 (顶点蒙皮+骨络动画)
  • 2.图片高清,得益于蒙皮的利用率高
  • 3.纹理小,内存占用少,得益于骨络动画制作
  • 4.美术产业成熟,很多公司或者外包都支持Spine

使用情况:

Spine是一个复杂系统
顶点计算,骨骼计算,事件管理…
所以在性能上,会面临更大压力和挑战.

渲染性能消耗来源:(Renderer time)

  • 顶点骨骼计算 (引擎有缓存预算模式)
  • Spine三角形Mesh组装,CPU合批的压力
  • 多种Spine混合交错,造成 Draw Call 增加

一直以来Spine的性能优化是很重要指标,下面简单介绍方向.

优化方向:

  • 减少计算消耗 (顶点,骨骼…)
    1.WASM , C++, GPU
    2.缓存模式,烘培模式
    3.美术制作前,制定合理指标

  • 增强合批能力 (中低端机器dc敏感)
    1.打大图合批,美术预制或者代码处理
    2.多纹理合批,修改扩展引擎增强合批

方案展示:

在不修改原工程,保证组件原功能的情况下,
经过两多月的尝试,制作Spine多纹理合批优化
中途实现了两套方案,最终确定一版,下面看实现效果:

1000 怪同屏压测

默认不合批

多纹理合批

实用优化插件:

UI性能优化,多纹理合批 3.x
UI性能优化,多纹理合批 2.x

13赞

:+1:

:+1: :+1: :+1:

牛牪犇逼:+1: :+1: :+1:

怎么进去啊,扫码进不去了

再添加上面二维码,试试

多种不同spine ,不能合批

draw call: 67
render: 3.79 ms

多种不同spine ,多纹理合批

draw: 9
render: 3.38 ms

3赞

膜拜大佬~! 3.X 的啥时候出 :yum:

目前已经发布了,1.0.2版本

体验链接

商店地址

1赞

好东西!!!

1000 怪同屏压测

注意:仅供测试,性能以实际最新源码为主 ( 在持续优化中 )

默认不合批

多纹理合批

1.0.3 版本更新:

  • 优化减少数据的更新
  • 优化材质shader性能
1赞

好东西,先标记一下!

1.0.4 版本更新:

  • 兼容低版本3.6.3 - 3.7.x

不支持3.8.x么?

支持吖,3.8.7 已经测试过

:+1::+1::+1::+1:

3.8.6 2d粒子 MultTextures脚本中Batcher2D.commitComp里if (!isNative) assembler.fillBuffers(comp, this);这里会报错,我看引擎中是if (assembler.fillBuffers) assembler.fillBuffers(comp, this); 这么处理的

你是3x吧,更新最新插件版本的,有做处理,
if (!isNative && assembler.fillBuffers) assembler.fillBuffers(comp, this);

1.0.6 版本更新:

  • 1.增加shader传参,
    内置效果(置灰,闪白),支持合批
  • 修正游戏重启,材质自动加载

请问支持2.x 原生吗? 另外如果spine外部图片局部换装了,是否还支持?