Table of Contents

MegaTracker 的概念與工作流

這篇文檔將介紹 MegaTracker 的基本概念及 MegaTracker 與微信原生的 AR 系統 VisionKit 和渲染框架 xr-frame 的關係。

開始之前

通過 Mega 簡介 了解:

  • Mega 定位與跟蹤的基本原理。
  • 什麼是 Mega Block。
  • 集成 Mega 後的預期結果。

平面 AR 追蹤器 是什麼

xr-frame 的平面AR追蹤器 本質上是 VisionKit 6DoF-平面能力的封裝。

在 xr-frame 的攝像機組件開啟 isARCamera 後,攝像機的三維變換每幀都會與 AR 系統 (VisionKit) 同步。

由 xr-frame 提供 3D 渲染能力,由 VisionKit 提供在現實空間坐標系下的運動跟蹤能力

平面 AR 跟蹤器不能和其他 AR 跟蹤器一起使用。

MegaTracker 是什麼

MegaTracker 是連接微信 AR 系統 (VisionKit) 與 Mega 空間計算服務的核心算法組件,由它提供雲定位功能。

  • 輸入:每一幀 VisionKit 計算出的在 VisionKit 坐標系下的相機位姿(即 6DoF 數據) 及 進行 Mega 定位那一幀時的相機圖片

  • 輸出:當前定位和跟蹤的 Mega Block 下的相機位姿 。

MegaTracker 是如何在 xr-frame 上工作的

flowchart BT
    subgraph Using xr-frame Only
        direction BT
        PlaneARTracker_1[PlaneARTracker] -->|MotionData & Image| XRFrame_1[xr-frame]
    end

    subgraph Using Mega Plugin
        direction BT
        PlaneARTracker_2[PlaneARTracker] -->|MotionData & Image| MegaTracker
        MegaTracker -->|CameraTransform| XRFrame_2[xr-frame]
    end
  • 在微信原生提供的數據流中 xr-frame 的攝像機組件每幀由平面 AR 追蹤器的結果直接更新。
  • 在 Mega 小程序提供的數據流中 在 VisionKit 坐標系下的相機位姿(即 6DoF 數據)及定位幀的圖片數據會輸入給 MegaTracker,在雲定位和本地計算之後輸出當前定位和跟蹤的 Mega Block 下的相機位姿 ,最終更新 xr-frame 場景中攝像機在 Mega Block 節點下的 LocalTransform,此時 MegaTracker 接管了攝像機的控制權, xr-frame 不再根據 AR 追蹤器更新攝像機。

MegaTracker 的運行深度依賴於平面追蹤器提供的 6DoF 運動數據。 因此,在平面追蹤器完成初始化並建立穩定的追蹤狀態前,MegaTracker 無法介入工作。此外,AR 追蹤的穩定性受限於環境特徵;在遇到大面積無紋理區域(如白牆)、相機長時間遮擋等極端場景時,若微信底層平面追蹤發生漂移或丟失,MegaTracker 將因失去可靠的輸入源而同步進入失效狀態。

後續步驟