Mega 与 ARKit/ARCore 功能对比
EasyAR Mega 与 Apple 的 ARKit 和 Google 的 ARCore 既有联系又有区别。理解它们之间的关系和各自的优势,对于开发者掌握 Mega 的运作机制至关重要。简单来说,Mega 可以充分利用 ARKit/ARCore 的运动跟踪能力,同时又扩展了 ARKit/ARCore 所无法满足的大空间定位需求。
核心关系
ARKit/ARCore (基础层):
- 它们是设备操作系统(iOS/Android)提供的 AR 开发框架。
- 核心职责是:设备级的环境感知与跟踪。例如,利用设备摄像头和 IMU 实现 即时定位与地图构建 (SLAM)、平面检测、光照估计、图像/物体识别等。
- 它们为上层应用提供了一个稳定的、低延迟的 6DoF 位姿数据流。
EasyAR Mega (应用/平台层):
- 它是一个 超大空间计算平台。
- 核心职责是:结合预先构建的、高精度的三维数据,通过先进的视觉定位技术,实现 城市尺度、厘米级 的持久化定位。利用 ARKit/ARCore 提供的底层 6DoF 数据实现融合运动跟踪。
- Mega 并不替代 ARKit/ARCore。而是利用它们来获取设备在物理世界中的初始运动数据,然后通过与 Mega 地图的匹配,将这个数据“锚定”到一个统一的、高精度的坐标系中。
功能对比与 Mega 的优势
ARKit/ARCore 中也提供了一定的空间识别定位能力,如 ARKit 的 ARWorldMap、ARCore 的 Cloud Anchors/Geospatial API。这些功能与 Mega 提供的超大空间定位能力有一定相似性,但又有根本区别。以下是两者之间的详细技术对比。
| 功能特性 | ARWorldMap | Cloud Anchors/Geospatial API | EasyAR Mega |
|---|---|---|---|
| 定位范围 | 可扫描与定位周围环境 | 可扫描与定位周围环境 | 可扫描与定位城市级空间环境 |
| 定位特点 | 可应对环境变化 | 可应对环境变化 | 可对环境变化、日夜更迭 |
| 地图构建 | 由设备端采集并构建,通过局域网实现共享 | 由设备端采集并构建,通过托管在 Google 云端端点实现共享 | 由专用设备采集并在云端构建,通过云定位服务实现任意设备端的共享 |
| 虚实遮挡 | 通过 LiDAR 扫描的 Mesh 实现几何遮挡 | 通过 Depth API 实现基于深度的遮挡 | 提供带有 LOD、细节丰富的 3D 模型,实现精确几何遮挡 |
| 跨设备体验 | 仅支持在 iOS 设备间共享与体验 | 通过 Google 云端端点实现 Android 与 iOS 设备之间的共享与体验 | 通过统一的云定位服务,实现几乎所有设备( Android、iOS、XR 头显)之间的共享与体验 |
| 技术依赖 | 仅支持在有 ARKit 的设备上运行,部分特性有额外硬件或软件要求(如 LiDAR) | 支持在有 ARKit、ARCore 的设备上运行 | 广泛兼容各种设备,不硬性要求设备具有 ARKit 或 ARCore |
与 ARKit/ARCore 同时使用
您在集成 EasyAR Mega 时,通常不需要直接调用 ARKit 或 ARCore 的接口。这是一个非常重要的概念:
- Mega 应用会根据终端运行的设备自动获取可用的 ARKit/ARCore 的 6DoF 数据流。
- 您只需要使用统一的
MegaTrackerAPI 来管理定位服务、获取姿态数据。内部会自动将 ARKit/ARCore 的原始数据进行融合计算,最终为您提供一个统一的、高精度的、持续跟踪的空间定位结果。 - 这种设计极大地简化了开发流程。您无需为不同平台编写和维护两套代码,也无需深入了解 ARKit/ARCore 的复杂 API。您只需要专注于使用 EasyAR Mega 的功能来构建您的应用逻辑。
提示
例外情况:如果您希望在使用 Mega 定位的同时,还利用 ARKit/ARCore 的某些特定功能(例如 ARKit 的 People Occlusion),您可能需要在应用中混合调用原生 API。
EasyAR Mega 并不是与 ARKit/ARCore 相竞争或替代,而是与它们形成互补和协同。ARKit/ARCore 解决了“设备在环境中如何运动”的问题,而 EasyAR Mega 则解决了“所有设备如何在同一个巨大空间中精确定位”的问题。通过将两者结合,您可以构建出前所未有的、具备大规模空间共享和持久化定位能力的 AR 应用。