我要发帖 回复

高级会员

57

主题

1182

积分

0

专家分

杰出贡献鼓励

兴趣点(最多三项):

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。
1.JPG
2 无视景条件下(使用mfcnoVisual.rar压缩里面的mfc.acf),发现有正常的几十帧的帧率,更有许多达到700-900以上的帧率,运行有1985帧,见logNovisual.txt日志,平均帧率1985/5=397。
尽管有“奇异”的700-900以上帧率,车辆与地面匹配后的计算数据也没有不正常(数据多,更平滑了),似乎这种情况下计算效率确实得到了大大提升?
2.JPG
3 有意思的是如果在视景死循环while()里加上一个Sleep(0)语句,无视景条件下就没有那“奇异”的帧率了,5秒内运行了97帧,也比有视景条件下的76帧多了21帧。

结论:无视景下的计算效率确实有提高。

另外,如果程序中要使用vpWindow(比如vpInputMouse等就必须要绑定到vpWindow),此时如果要想没有视景可以把vpWindow进行设置为0大小并hide:win->setCoordinates(0,0,0,0);win->hide();

vpMFC.rar

706.05 KB, 下载次数: 44

最近VR访客

独山子 评论于2008-8-31 19:16:19
程序一般执行到sleep,就将cpu时间片让出去了,中断循环。xp下线程时间片切换周期是10ms,所以加sleep以后,它的帧率应该是100左右。
逆水行舟,不进则退。

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-4-21 06:53 PM

返回顶部