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 應用。