spine动画RenderBatches问题

如标题,一张骨骼动画图,渲染批次按道理1就可以,测试发现是5~40多不断改变,查看了源码发现在一个submit里面出现了不同批次渲染的比较。
如图:submit里面的对象PRENDERBASE比较,但是赋值又给了preRender(看源码说这玩意儿用来比较key的)
ps1:不知道咋回事,demo一直没法上传,显示‘网络链接异常’。
ps2:我这个demo就是一个骨骼动画,只有一张图,昨天查了下去掉blend模式渲染批次就成为1了,但对于骨骼来说,相加是根本。
 
下载.png
已邀请:

Laya_kylin

赞同来自:

你好,具体信息请参阅该贴: spine3.8运行库 在使用的spine有叠加模式时 DrawCall非常高,并且重复使用不会合并,DrawCall会成倍增长
 
1) drawcall数量随着spine动画数量增加的问题:
1.1) 目前我们将计算委托给了spine-core,所以一次画十个spine动画目前还无法进行针对性的优化,drawcall会随着spine动画的数量增加。
1.2) 理论上增加动画缓存可以解决这个问题,我们已经安排在了时间表上,但目前我们人力比较紧张,短期内还无法启动该优化方案。
2) 同一个spine动画drawcall数量的问题:
2.1) 因为用了不同的叠加模式,必然会导致drawcall被打断。
2.2) 针对这个spine动画,我检查了所有的drawElement和blendFunc,发现还是有优化空间的,你可以根据图片所示,将红框里的内容注释掉,drawcall会减少一些。但这个优化仅能针对项目,我们无法提交引擎。
2.3) 这个优化我们曾经提交过引擎,但后来还原了,说明在特定条件下是有问题的,但我们目前也不清楚是什么样的特定条件了,如果您使用这个优化出现了问题,也请提交demo给我们,我们再检查一下。

要回复问题请先

商务合作
商务合作