[LayaAirIDE 2.0]Laya 2.2在iPhone 6S上出现严重的帧率暴跌问题

问题重现:
LayaIDE 2.2.0 beta 4, iphone 6s手机,chrome浏览器
安卓手机没有问题
 
在场景里如果出现两组相同的模型,帧率会降到2-3 fps

WechatIMG1.png

 
 
 
 
如果是几组不同的模型, 帧率正常在60 fps左右

WechatIMG2.png

 
 
 
看起来像是saved render batches出现问题了。
已邀请:

NilZ

赞同来自: layabox

经过实测在iphone6s上帧率的确下降幅度的确十分大,到了令人发指的地步,经过屏蔽你所提供demo的资源中所有精灵的物理组件,帧率就达到满帧,发现你使用的碰撞形状都是MeshColliderShape,并且数量比较多,因为iphone的微信小游戏不支持jit编译,所以物理碰撞检测效率十分低下。所以不建议你使用这么多数量的MeshColliderShape,可以使用SphereColliderShape和BoxColliderShape。(所以你所反馈的问题和引擎没有多大的关系,和你使用方式有直接关系)

Aar0n

赞同来自:

需要demo的
 

btiger

赞同来自:

链接: https://pan.baidu.com/s/1jtjVyFlljgh_WvKDI9GWBw 提取码: 9wmd 工程文件在这里

Aar0n

赞同来自:

为什么不直接传,网盘下载不了

btiger

赞同来自:

这是工程文件

陆仁毅

赞同来自:

用你的withbug的demo在6s上测试
chrome环境下
2.png


小游戏环境

test.jpg

 

btiger

赞同来自:

能否分享一下上面你们微信小游戏的工程文件?我们现在使用了Laya 2.3 beta,在苹果chrome上面,基本上可以稳定在30fps,但是一旦编译到小游戏里,帧率还是在1 fps。 

btiger

赞同来自:

目前更新到Laya 2.3 beta之后的情况,可下载附件Laya工程文件:
 
双番茄场景
iPhone 6S
Chrome: 55-60 FPS
微信小游戏:1-2 FPS  (有严重的帧率问题)
 
Redmi Note 7
Chrome: 60 FPS
微信小游戏: 60 FPS
 
iPhone 6S Chrome:


 
iPhone 6S 微信小游戏(有问题):
iOS_wechat.png

 
 
Redmi Note 7 Chrome:
android_chrome.png

 
 
Redmi Note 7 微信小游戏:
android_wechat.png

 
 

Simba

赞同来自:

我也遇到这问题了,我个人感觉也是saved render batches引起的问题,我单独改名加载不同的.lh就没问题。
我的问题:用了Sprite3D.instantiate方法,在iPhone6上性能降低了8...

潘智峰

赞同来自:

 我也遇到了这个问题。

btiger

赞同来自:

把所有的物理组件全部去掉, 现在只是纯粹的模型,没有任何脚本逻辑,现在放到iOS的微信小游戏里,只有18-19 FPS左右,远低于安卓平台和chrome下面,这样的是正常的吗?跟JIT有没有关系?  工程文件在最后。

WechatIMG2.png

 

btiger

赞同来自:

上面的纯模型场景找到一个提高帧率的方法:
在unity里面设置物体的shader:
1.  先把render mode 设置成transparent
2. 再把render mode设置成 custom
3. 然后把depth write 设置成 on
 

截屏2019-10-09下午1.02_.56_.png

 
 
通过以上修改,现在微信小游戏里纯模型的场景可以达到60 fps,saved batch render是0, 不知道帧数下降是不是和batch render 有关系??

WechatIMG3.png

 

NilZ

赞同来自:

1570612927(1).jpg

这是关闭动态合批的方法。将true置为false即可关闭。感谢你的反馈。

NilZ

赞同来自:

结论:经过确认,在动态合批过程中,存在着bufferSubData()操作,但是在iOS微信小游戏平台下,似乎实现存在着一定的问题,已经和微信进行沟通了。目前来说,可以采取关闭动态合批进行避免。

btiger

赞同来自:

十分感谢,我们先用你们提供的方法,期待batch render这个问题可以早点解决。
 
另外,我们在用rigidbody的时候也遇到了类似的情况,不知道是JIT的原因还是其他原因导致的。
 
场景里有60个小球,所有小球加了rigidbody和sphere collider, 没有任何脚本, 也关掉了dynamic batch render。
 
在iOS Chrome,Android Chrome和Android 微信小游戏里都是60 FPS。
 
只有在iOS的微信小游戏里会降到 16-18 FPS.  不知道是不是和动态合批的问题类似? 工程文件已上传。

WechatIMG4.png

 
 

要回复问题请先

商务合作
商务合作