btiger 问题重现:LayaIDE 2.2.0 beta 4, iphone 6s手机,chrome浏览器安卓手机没有问题 在场景里如果出现两组相同的模型,帧率会降到2-3 fps 如果是几组不同的模型, 帧率正常在60 fps左右 看起来像是saved render batches出现问题了。
btiger 目前更新到Laya 2.3 beta之后的情况,可下载附件Laya工程文件: 双番茄场景iPhone 6SChrome: 55-60 FPS微信小游戏:1-2 FPS (有严重的帧率问题) Redmi Note 7Chrome: 60 FPS微信小游戏: 60 FPS iPhone 6S Chrome:iPhone 6S 微信小游戏(有问题): Redmi Note 7 Chrome: Redmi Note 7 微信小游戏: Laya2.3_wechat_mini_test_.zip0B
Simba 我也遇到这问题了,我个人感觉也是saved render batches引起的问题,我单独改名加载不同的.lh就没问题。我的问题:用了Sprite3D.instantiate方法,在iPhone6上性能降低了8...
NilZ 经过实测在iphone6s上帧率的确下降幅度的确十分大,到了令人发指的地步,经过屏蔽你所提供demo的资源中所有精灵的物理组件,帧率就达到满帧,发现你使用的碰撞形状都是MeshColliderShape,并且数量比较多,因为iphone的微信小游戏不支持jit编译,所以物理碰撞检测效率十分低下。所以不建议你使用这么多数量的MeshColliderShape,可以使用SphereColliderShape和BoxColliderShape。(所以你所反馈的问题和引擎没有多大的关系,和你使用方式有直接关系)
btiger 把所有的物理组件全部去掉, 现在只是纯粹的模型,没有任何脚本逻辑,现在放到iOS的微信小游戏里,只有18-19 FPS左右,远低于安卓平台和chrome下面,这样的是正常的吗?跟JIT有没有关系? 工程文件在最后。 Laya2.3_wechat_mini_test_.zip0B
btiger 上面的纯模型场景找到一个提高帧率的方法:在unity里面设置物体的shader:1. 先把render mode 设置成transparent2. 再把render mode设置成 custom3. 然后把depth write 设置成 on 通过以上修改,现在微信小游戏里纯模型的场景可以达到60 fps,saved batch render是0, 不知道帧数下降是不是和batch render 有关系?? Laya2.3_wechat_mini_test_.zip0B
NilZ btiger 经过确认,在动态合批过程中,存在着bufferSubData()操作,但是在iOS微信小游戏平台下,似乎实现存在着一定的问题,已经和微信进行沟通了。目前来说,可以采取关闭动态合批进行避免。
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. 不知道是不是和动态合批的问题类似? 工程文件已上传。 test_rigidbodies.zip0B