Spine动态合批方案

  • Creator 版本: <3.8.0>

  • 目标平台: <Edge浏览器>

一个动画用了两个图集,运行时图集被穿插引用,导致断批,如下动画两个实例产生14-1个drawCall
image
现想通过动态合批方式降低drawcall,参考了sprite的动态合批方案
使用DynamicAtlasManager的insertSpriteFrame方法,将两张图集合并到一张图集上,获得返回的texture,
然后关键的来了,我将skeleton的skeletonData里的textures的每一个值都赋值为上面的图集texture
这样操作可以看到drawcall降下来了,然后由于没有同步修改图像的引用方式,所以动画显示出现错乱
如图
企业微信截图_17001284995851
所以现在想求助一下,看有没有什么好的方式在降低drawcall的前提下解决动画显示问题

1赞

如果图片不大同时数量不多的话,建议你先别走多纹理合批,先把插槽换图搞明白,然后将这个人物的合成一张图片,更快更实际些

整了一天整明白了,合图之后,spine的atlas数据上改一下对应的尺寸和坐标就行image
size改成合图后图集的尺寸,然后切片的xy加上图片在图集里的偏移就行,然后完美运行,drawcall也降下来了
image

1赞

哈哈,顺序反了,接下来搞插槽换图的合批

兄弟插槽换图合并搞出来了吗