咨询 spine 相关的性能优化

背景:近期,想用cocos creator 2.4.7 版本做一个 mmorpg 2D像素风的游戏,由于人物需要支持多套动作以及换装,所以技术方案选用了spine。但是在中途发现,真机 native 在地图上渲染400个人物形象的时候, fps 会非常低。
问题一:针对多个spine渲染,请问一下有什么好的解决方案吗。
问题二:在测试性能问题的时候,发现相机的zoomRatio 会影响 fps,请问cocos creator 2d 相机是否也支持 LOD,如果不是,有没有大佬深入研究过这个问题。

少渲染,你总不至于屏幕上同时能看到400个对象吧。
弄一个虚拟视区,比屏幕大一些,保证移动也不会看到渲染过程,然后视区外的都隐藏就行了,什么ai各种逻辑都屏蔽,你会发现直接60帧。

我们这里有些特殊场景确实需要看到400个对象,比如集体打卡拍照等,请问一下是否有好的策略。

放弃spine 自己实现换装方案
《Cocos Creator游戏实战》像素换装实现原理_cocoscreator 制作像素游戏-CSDN博客
可以参考这个

1赞

没有什么低成本的优化方案.
硬要说就是可能有效的是lod, 400人场景换成一个骨骼更少spine.
看一下是渲染帧时间才还是逻辑帧 时间长, 限制相关表现,比如合照的时候限制部分关节运动, spine局部预渲染,降低逻辑帧率.
升级3.8 或者手工在2.4更换wasm spine.

1赞

合批了吗?合批后DC是多少?

dc 合批了,但是还是卡顿,测试了一下还是和骨骼数量相关,骨骼数量减少,卡顿现象明显缓解

谢谢大佬回复,我这里继续深挖一下

不用挖了,我来给你做一个简单分析:
掉帧的原因无非就是计算超过了CPU和GPU的单帧的计算时长。只有考虑两方面的优化:CPU和GPU

spine本来就是利于CPU的算力来减少美术资源的方案,你任何骨骼的移动,变形等行为,都是消耗CPU的算力的,所以测试很简单,为了排除DC带来的影响,你就只放一种spine,放400个播放动画,看是否卡顿掉帧。通过不断调整spine的个数,你就能测试出你的机型CPU最大承受spine不掉帧的数量。如果远远低于400个,那么你的CPU的算力已经不够用了,就别想后面的事情的。

1赞

对 其实就是这个意思。。。哈哈哈哈哈