在更新时询问 PoseProvider 的姿势与响应 OnTangoPoseAvailable
Asking PoseProvider for pose on Update vs responding to OnTangoPoseAvailable
在 Tango 项目的 Unity 演示包中挖掘 TangoARPoseController
.cs,我注意到虽然其他演示姿势控制器都使用 OnTangoPoseAvailable
处理程序进行姿势更新,但 AR 示例使用PoseProvider.GetPoseAtTime
直接从 Update 函数获取姿势数据的方法。
为什么?
实现真实 AR 视图的一个关键点是对齐姿势和彩色图像之间的时间戳。原因是系统运行速度非常快,如果我们根据最新的姿势渲染一个物体(相机),很可能我们的彩色相机纹理已经过时,并且它已经没有与最新的姿势相关联。
为了简化流程,Tango API 提供了一个非常好的实用函数,允许您根据 Tango 时间戳 PoseProvider.GetPoseAtTime
获得姿势,请注意,Tango 系统中的所有时间戳都被标记为同一个时钟。
在 TangoARPoseController
中,代码使用彩色相机帧的时间戳来查询与该时间关联的姿势。因此,它保证了物体姿势(相机姿势)和背景颜色相机图像是同步的。
在 Tango 项目的 Unity 演示包中挖掘 TangoARPoseController
.cs,我注意到虽然其他演示姿势控制器都使用 OnTangoPoseAvailable
处理程序进行姿势更新,但 AR 示例使用PoseProvider.GetPoseAtTime
直接从 Update 函数获取姿势数据的方法。
为什么?
实现真实 AR 视图的一个关键点是对齐姿势和彩色图像之间的时间戳。原因是系统运行速度非常快,如果我们根据最新的姿势渲染一个物体(相机),很可能我们的彩色相机纹理已经过时,并且它已经没有与最新的姿势相关联。
为了简化流程,Tango API 提供了一个非常好的实用函数,允许您根据 Tango 时间戳 PoseProvider.GetPoseAtTime
获得姿势,请注意,Tango 系统中的所有时间戳都被标记为同一个时钟。
在 TangoARPoseController
中,代码使用彩色相机帧的时间戳来查询与该时间关联的姿势。因此,它保证了物体姿势(相机姿势)和背景颜色相机图像是同步的。