qq飞车吧 关注:4,149,092贴子:209,676,458
  • 5回复贴,共1

分析了下帧数影响速度的原因

取消只看楼主收藏回复

飞车帧数影响提速的原因,这里讲一个原因,叫帧时间损失


IP属地:浙江1楼2024-04-26 23:55回复
    飞车会根据帧率计算帧时间,每一帧会更新速度、加速度、坐标,我们把帧时间叫做dt;
    dt是浮点类型,参与物理引擎计算时,dt做了舍位,只取了小数点后三位,再后面的位数都舍掉了,我们将舍位后的帧时间称为sdt;
    sdt在每帧更新时会喂给物理引擎来算速度、加速度、坐标;
    因为有舍位的情况,sdt大部分情况都是比dt小的,也就是说实际计算时,加速度a以及速度v的作用时间被缩小了,理论上a、v应该要作用dt时间,实际只作用了sdt的时间
    然后还有尴尬的一点是,飞车计算右上角的时间时并没有做这种舍位,所以计算比赛用时,还是用的dt


    IP属地:浙江2楼2024-04-26 23:56
    回复
      2025-07-31 10:26:35
      广告
      不感兴趣
      开通SVIP免广告
      举个例子,38.47帧下帧时间dt为0.0259942812581232,舍位后sdt为0.25,造成每一帧的加速度作用时间都被减少了0.00942812581232,提速慢了,真实速度也打折了
      而38.46帧下帧时间dt为0.0260010400416017,舍位后sdt为0.26,几乎没有差别


      IP属地:浙江3楼2024-04-26 23:57
      收起回复
        设计测试,冰夷跑训练场,平跑测定提速至227时间和撞墙时间
        38.46帧 8.26s 11.02s
        38.47帧 8.58s 11.45s
        差别巨大。前两张是38.46帧,后两张是38.47帧





        IP属地:浙江4楼2024-04-26 23:58
        回复
          为什么40帧、37.03快?
          40帧下dt为0.025,sdt为0.025,除非帧抖动的情况,a、v作用时间没有损失
          37.03帧下dt为0.0270051309748852,sdt为0.027,相差很小,几乎没有损失
          越过37.03一点,37.04帧下,dt为0.0269978401727862,sdt为0.026,加速度作用时损失不少时间
          总的来说,帧时间是小数,为1/帧数。小数点3位以后的数字越大,实际速度越慢


          IP属地:浙江5楼2024-04-26 23:59
          回复
            速度快的几个帧数分别是
            30.30,31.25,32.25,33.33,34.48,35.71,37.03,38.46,40.00
            测试耀影23区平跑撞墙,30.30最快,11.02s撞墙减速至121,其余基本都是11.04 11.05 11.06。
            实际跑图选40帧完事,流畅,快。


            IP属地:浙江来自iPhone客户端15楼2024-04-27 01:51
            收起回复