Closed wuchuanjue closed 5 years ago
多谢反馈!关于您提到的帧率问题,在我们这边的开发机都有做自测的,在Gallery这个场景下我们的开发机上帧数一般都在50 - 60左右,基本是满帧的,并没有发现您提到的问题。不过我们这边测试用Android机有限,确实无法cover掉所有的case。如果方便的话能否提供一下您的开发机型号以便我们测试调优?
不过UIWidgets目前在性能上确实还有一定的提升空间的,我们Team里也有专门的同事在持续推进优化相关的工作,欢迎您继续关注我们后面的update,多谢!
你好。我的测试机是魅族pro6,分辨率是1080p。关闭了垂直同步,设置了targetFrame到60.
UIWidget界面上如果有改变的话是否就会提升到60帧? 是否需要一个参数强制每帧去渲染,看看能否稳定60帧。 我是这样理解的,这种ui依靠脏渲染来避免每帧渲染和控制渲染区域来提升性能避免发热。如果要单纯测试性能的话,就强制每帧渲染看看帧频能到多少了。
嗯嗯,确实我们默认会开启帧数自动调节,这样只有当界面变化时才会提升到60帧,否则会降到25帧左右。你可以试一下Readme里面给出的这个方案来自定义帧数自动调节的逻辑https://github.com/UnityTech/UIWidgets#automatically-adjust-frame-rate 看看效果?
找到了window的defaultFrameRateSpeedUp方法。 我看到这里会根据ui的情况动态的修改帧频,突然有了另一个疑问。如果app中存在ui和3D的内容部分,那么当我的ui静止的时候就会影响到3D部分的内容渲染。 貌似不可解?如果有ui以外的内容需要渲染的话(3D场景,video,webcam),就只能选择保持高帧率了。
嗯嗯,是这样的。如果包含有3D场景等时,为了保证显示效果的话就需要把帧率调节disable掉了。
对这个问题我们内部也讨论过,结论是我们这边主要负责提供全面灵活的可调节机制,然后每一个项目根据自己的应用场景来定制自己的策略。
从本质上讲,渲染的效果与耗电本来就是矛盾的,因此既然一定要有一个tradeoff,我们更希望开发者们自己掌握这个尺度
了解。 这块的话可能需要开放个接口让外部能够控制这个行为了。 修改过降帧逻辑后重新测试了下gallery。在魅族pro5(之前说成了pro6)上,Shrine界面静止时60帧,列表频繁滑动的时候帧频持续掉到个位数。 还有一台Huawei p9,帧频也持续在个位数。 Unity的版本是2018.4.0f1。 感觉性能上还有很大的优化空间。
嗯嗯,多谢提醒!我们的优化工作已经按照计划在进行了。敬请关注:)
从unity商城下的package,把gallery场景打包到了安卓测试机上。 跑起来后发现挺不流畅的,打开"Show performance overlay" ,显示在滑动的时候帧频也只有30多40多。感官上很卡。这台手机按道理显示这种级别的ui应该能60帧才对。