- 积分
- 1182
- 帖子
- 362
- 主题
- 57
- 精华
- 2
- 最后登录
- 2020-6-11
- 在线时间
- 561 小时
高级会员

兴趣点(最多三项):
VegaPrime
军事仿真
定位与追踪
- 私信
|
发表时间 : 2008-8-30 16:36:34
|
浏览 : 1198 评论 : 1
VegaPrime_2.0_Web_Samples下有vp_no_visual例子,没有vpPipeline,vpWindow,vpChannel等等,也就没有视景显示了,没有draw和Cull线程了,只有APP线程,是不是draw的时间就没有了?
在只需要vp里的计算功能而不必需要显示的应用场合,是否就能提升其计算效率?
带着这问题尝试了下,如下心得与大家分享。
做一正常的需要视景显示的mfc.acf (mfchaveVisual.rar);
再做了一个只有vpScene,vpObject,vpIsector,vpGroundClamp,vpIsectorServiceAsynchronous等实例的mfc.acf (mfcnoVisual.rar)。
程序中共有60个m1的坦克进行驾驶,每个坦克需要与地面进行匹配,测试vpIsectorZPR碰撞算法,运行时间5秒钟。
测试环境:AMD Athlon(tm) 64 Processor 3200+ 2.2GHz,512MRAM,ATI RADEON 9600(128MB),xp,1024 x 768 (32 bit) (75Hz),vp2.0.1
输出帧率和某车的位置和姿态。
1 有视景条件下(使用mfchaveVisual.rar压缩里面的mfc.acf), 帧率正常,运行有92帧,见loghavevisual.txt日志,平均帧率95/5=19。
2 无视景条件下(使用mfcnoVisual.rar压缩里面的mfc.acf),发现有正常的几十帧的帧率,更有许多达到700-900以上的帧率,运行有1985帧,见logNovisual.txt日志,平均帧率1985/5=397。
尽管有“奇异”的700-900以上帧率,车辆与地面匹配后的计算数据也没有不正常(数据多,更平滑了),似乎这种情况下计算效率确实得到了大大提升?
3 有意思的是如果在视景死循环while()里加上一个Sleep(0)语句,无视景条件下就没有那“奇异”的帧率了,5秒内运行了97帧,也比有视景条件下的76帧多了21帧。
结论:无视景下的计算效率确实有提高。
另外,如果程序中要使用vpWindow(比如vpInputMouse等就必须要绑定到vpWindow),此时如果要想没有视景可以把vpWindow进行设置为0大小并hide:win->setCoordinates(0,0,0,0);win->hide(); |
|