ARKit 文档(0)-- ARKit原理及最佳实践

理解 ARKit 的概念,特性和创建优秀 AR 体验的最佳实践

满足一个 AR 体验的基本要求就是 创建追踪 用户所在的现实世界可建立模型的内容空间 之间的对应关系的能力,这也是 ARKit 所定义的特性。当你的 APP 将虚拟内容和摄像头中出现的实时画面显示在一起时,用户就会产生一种虚拟内容就是存在于现实世界中的错觉,这就是所谓的增强现实。

世界追踪技术的原理

为了创造一种在现实世界与虚拟空间之间的联系,ARKit 使用了一种叫做 visual-inertial odometry(视觉惯性测距) 的技术。它将会结合 iOS 设备的运动传感器和相机中对可见场景的计算机视觉分析进行处理。ARKit 会识别图像场景中显著的特征,并从视频帧中追踪这些特征的差异位置,最后与传感器数据进行比较,最后得到一个设备的位置和运动状态的高精度模型。

世界追踪技术 还会分析和理解场景中的内容。使用 hit-testing 方法(见 ARHitTestResult 类)寻找真实世界中与相机画面中的点对应的平面。如果你设置了 session configuration 中的 planeDetection 属性,ARKit 会检测相机画面中的平面并报告它的位置和大小信息,这时候就可以使用 hit-test 结果或检测到的平面来在场景中放置虚拟内容。

最佳实践与局限性

虽然 世界追踪技术 经常会产生令人震惊的准确性,并引领现实的 AR 体验,但它仍然是一项不精确的科学技术。它严重依赖设备所属的物理环境中的细节,通常这些细节难以有一致性,或者这些细节难以进行实时测量却没有某种程度上的错误。为了建立高质量的 AR 体验,务必要注意这些事项和提示。

尽量在可遇见的高亮度的环境下构造 AR 体验

由于世界追踪技术设计到图像分析,所以它需要一张清晰的图像。当相机中无法清楚的看到细节时,比如对着一面黑色的墙或者所在的场景太黑暗,追踪的质量就会明显的降低。

使用追踪质量的信息给用户提供反馈

世界追踪技术与图像分析和设备运动有关。当设备在移动时,ARKit 会很好的理解场景,就算是移动一点点。但是过度的运动,包括太远,太快或者太距离晃动都会使得图像变得模糊,或者由于追踪的视频帧相距太远从而降低质量。ARCamera 类提供了追踪状态的原因信息,可以用于开发提示界面,告诉并帮助用户去处理低质量的追踪情况。

给平面检测充分的时间去产生清晰的结果,并且当你得到想要的结果后禁用平面检测

平面检测的结果会随时间变化。当首次检测到平面时,它的位置和边缘通常是不准确的,随着时间推移,ARKit 会改进对面平面位置和边缘的估计。当一个更大的平面出现在从场景中,ARKit 会持续改进平面的锚点,边缘和旋转角度即使你已经放置了一个内容在平面上。

Show Comments