【流畅度】

一、帧率标准来源

帧率标准,没有具体的标准,还是需要根据具体的应用来。如果一定需要定义一个标准,可以将各项freq提升到最高,获取该平台下的一个fps的最优值作为标准

 

二、常见的fps界限

12 fps:

由于人类眼睛的特殊生理结构,如果所看画面之帧率高于每秒约10-12帧的时候,就会认为是连贯的(手动快速翻阅电子书)

24fps

有声电影的拍摄及播放帧率均为每秒24帧

30fps

可以接受但是无法顺畅表现绚丽的画面

60fps

可以明显提升交互感和逼真感(app的性能目标是保持60fps

75fps超过

不容易感受到明显的流畅度提升,但VR设备需要高于75fps才能消除眩晕

 

三、Vsync信号同步

android每隔一定的时间会发出vsync信号,触发UI去绘图,根据下面的值,时间限定不同,一般是16ms

vsync的设计里面有三个值

0

关闭vsync同步,容易产生撕裂现象,

1

打开vsync限制最高帧率在60fps

2

打开vsync限制最高帧率在30fps

一般游戏会限定一个值

Application.targetFrameRate

-1

不做限制,同时需要vsync设置为0才能生效

既定帧率

同时需要vsync设置为0才能生效

这个值没办法具体看到,但是vsync设置为0,会产生撕裂现象,所以一般也不设置为0,常见设置是设置为1限定以60fps为标准(仅参考unity 3D)

补充:撕裂是指帧率>刷新率,当屏幕还没有刷新n-1帧的数据时,就开始生成第n帧的数据了,从上到下,覆盖第n-1帧。如果此时刷新屏幕,就会出现图像的上半部分是第n帧的,下半部分是第n帧的现象

 

四、如何衡量流畅度

掉帧或者掉帧率

掉帧产生的原因是,图像的绘制时间超过了单个的时间周期,导致用户看到的画面没有及时被更新。

丢帧情况(单位时间内均匀分布)

卡顿情况

0-10

流畅

10-20

较卡

20-40

很卡

40-60

卡死了

至于具体计算单位时间掉帧的方法,"只能通过systrace结合应用推测",目前还没有很好的方法。

 

五、fps计算帧率

Dump surfaceflinger的信息 fps代表的是自开机后屏幕刷新次数。

该值由surfaceflinger的成员

mutable uint32_t mPageFlipCount;

这个值决定,也需要引入时间才能计算帧率,没有现成的计算帧率的接口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值