基本原理详解:--整理自RACORE官网:
运动跟踪:
当手机在现实世界中移动时,ARCore 会通过VIO过程来获得手机相对于周围世界的Pose(为相对于世界坐标系)。
过程是ARCore 会检测摄像头拍摄的图像中的特征点(视觉差异特征,指特征点随时间的移动),并使用这些点来计算相机位置变化。 将这些视觉信息与设备 IMU 的数据结果结合,可以实时估计出摄像头相对于周围世界坐标系的姿态(位置和方向)。
通过将渲染 3D 内容的虚拟摄像头Pose与 ARCore 提供的设备摄像头的Pose进行对齐,开发者能够从正确的透视角度渲染虚拟内容。然后渲染的虚拟图像可以叠加到从设备摄像头拍摄的图像上,使得虚拟内容看起来就像现实世界的一部分。
环境理解:
ARCore 会通过检测特征点和平面来不断改进它对现实世界环境的理解。
ARCore 可以查找看起来位于常见水平或垂直表面上的成簇特征点(例如桌子或墙),并让这些平面在app中显示的也是平面。 ARCore 也可以确定每个平面的边界,并让在app中也认为是平面。 你可以使用理解的这些信息将虚拟物体置于平坦的表面上。
由于 ARCore 使用特征点来检测平面,因此可能无法正确检测像白墙一样没有纹理的平坦表面。