Drawcall 的坑

creator 2.0.2和2.0.5,都有这个问题,我这里iphone6sp 设备当场景中有50个Label左右时,会从60帧下降至40帧左右,同时还有个问题也会引起帧率下降 就是场景中存在大量的不同渲染模式的图片叠加在一起时也会引起帧率下降

1赞

label多导致drawcall增多

用 bmfont

确实是draw过多, vert也多,导致帧率变低

bmfont

可以使用自动图集将BMFont的图片和资源图片打包到一起

经过一个周末的坑中遨游,之前以为是简单的label问题,结果不只是这个原因,导致drawer过高的原因我总结了几点,主要是用于prefab中:

  1. 一个prefab中所有资源最好是同一个图集的资源,使用了相同图集的资源,在不停的添加prefab不会增加drwacall, 一旦使用不同图集,每增加一个prefab 就会增加相应的drawcall
  2. 慎用label, 即使使用了相同图集资源,假如再在prefab中增加一个label, 就是导致你增加一个prefab 就会增加相应的drawcall
    3.不要改变带sprite组件的节点的color, 这样做了 即使使用了相同图集资源,假如再在prefab中增加一个label, 就是导致你增加一个prefab 就会增加相应的drawcall
    4.慎用default_sprite、default_sprite-splash 和singal color ,一旦使用了就会让drawcall继续增加
5赞

总结就是prefab中所有资源最好来自同一个图集,不要使用系统默认的,使用label 最好用bmfont

这两个不一样drawcall 也会增加, opacity 不一样drawcall也会增加,还得持续躺坑

总结的不错 再接再厉 好评

同一图集中的资源 这里也要保持一致,不然也会增加

经典,~

mark一下

2.1之后就好很多了, color改变不增加drawcall

但是 我想问的是 即便是drawcall到80个哪又怎么样了,80个drawcall就没办法60针了么

mark

那当然,绘画数据结构不一样

blend 不一样,更加不能合并,这是常识

节点所属的组不同也会增加drawcall

官方都说了2.0的颜色,透明度等会造成nobatch。你升级到2.1就可以,官方是这么说解决了的。不知道是真的假的