问题描述
我正在使用HelloAR sample application。该示例使用ARCore。我正在Android三星galaxy Tab S5e上运行示例。
如何测量AR应用程序的帧率(每秒帧数)?我需要对数据进行图形处理,因此理想情况下,无论我采用哪种方法的输出都会给我某种CSV例如时间,fps
我已经尝试过查看GameBench,但这需要我填写表格并等待“专家”回到我身边。我还尝试了使用dumpstats和framestats,但是只能输出2帧,并且很少更新。我还尝试了GitHub(TinyDancer)上的一些项目,但这不起作用。
有什么想法吗?
解决方法
要在ARCore 1.19中测量帧速率,可以使用公共类getTimestamp()
的{{1}}公共方法。在60 fps下,每帧持续约 16.67 ms (或〜16670000 ns )。
Frame
让我们看看官方documentation怎么说:
public long getTimestamp()
方法返回捕获此图像时的时间戳(以纳秒为单位)。这可用于检测掉帧或测量相机的帧频。该值的时基没有明确定义,但很可能类似于getTimestamp()
。
因此,如果每个当前帧与上一帧之间的时间差为〜16670000纳秒,则帧速率为60 fps。但是,如果时差约为33330000纳秒,则帧速率为30 fps。