osg性能数据的收集流程

来源:互联网 发布:艾儿长靴淘宝店铺 编辑:程序博客网 时间:2024/05/06 14:55
数据的收集分为两个层次:Viewer和Camera。对于Viewer获取其Stats使用:
osg::Stats* stats = viewer->getViewerStats();
对于Camera,获取其Stats使用
osg::Stats* stats = viewer-> getCamera()->getStats();
Camera和Viewer分别可以收集的数据见上表。
1、 开启数据收集:
osg::Stats* stats = viewer->getViewerStats();
stats->collectStats("frame_rate",true);
2、获取性能数据
osg::Stats* stats = viewer->getViewerStats();
 
//获取平均值
double frameRate=0;
stats->getAveragedAttribute("Frame rate",frameRate,true);
printf("frameRate:%f\n",frameRate);


//获取某帧的数据
int frameNumber;
stats->getAttribute(frameNumber ,"Frame rate",frameRate);


需要说明的是:
1、 指定收集数据的关键字和在获取相关具体数据时使用的关键字不同。收集用的关键字见上表中第二列,对应收集的信息关键字对应上表第三列。第一列表示是在那个级别上进行收集有效,分Viewer和Camera两个级别。
2、 上述数据中的时间单位为秒,这与按s键出来的数据单位不太一样。

3、 使用getAttribute时获取帧数采用:viewer->getFrameStamp()->getFrameNumber();


此文涉及表格数据,不能加入正文中。特上传成为资源:http://download.csdn.net/detail/fenma3422/5234491