网络传输速率大小惹的祸!
上一篇 /
下一篇 2014-03-24 20:39:45
/ 个人分类:仿真编辑器
问题:(虚拟仿真沙盘)控制机与场景机要做到位置、角度的同步(其实是两个角色位置和朝向的同步),结果场景机出现卡滞现象。
功能实现方式:控制机给场景机发送同步信息。
预测1:自己首先排查飞行角色(一种没有物理属性的摄像机)的功能是否有问题;具体就是让控制机与场景机各自自己计算自己的位置朝向,看是否会出现卡滞问题。
结果1:控制机、场景机功能均正常。所以飞行角色功能没问题。
预测2:飞行角色自身有延缓功能(可以通过接口函数自行设置它在两点之间飞行时间)可能是延缓时间太长或太短,导致时间用完而没有飞到,或者没到达目的地时间用完了;于是在合理范围内逐渐改变飞行时间大小。
结果2:可以减缓卡滞现象但不能解决根本问题。
沟通:最后经过和开发人员沟通发现他是使用计时器计数来发送信息的(控制机利用计时器每帧给场景机发送同步信息。),所以接受数据不会是持续匀速的,而且飞行角色自身也有延缓时间,结果两者不协调,所以就出现卡的现象。
解决方案1:不使用计时器,加判断一旦数据改变就发送给场景机。
方案结果1:控制机帧率大幅度下降,性能严重下降。(从20下降到1)
解决方案2:使用定时器,控制每帧发送数据多少,寻找一个合适点。
方案结果2:卡滞现象消除,帧率下降到15,不影响正常功能。
总结:1.控制机不卡而场景机卡,首先要对比两者差异因素,可以直接排除预测1,找出两者不同因素,从不同因素着手分析问题所在;2.平时多和开发沟通,多了解功能实现方式。
----2014.3.24
收藏
举报
TAG: