Table of Contents

Mega 微信小程序插件上的 AR Session 概念與流程

這篇文檔將介紹 Mega 微信小程序插件上的 AR Session 的概念與流程。

AR Session 是什麼

Mega 微信小程序插件提供的 AR Session 是所有 AR 功能的入口。它管理運行過程和狀態:包括從 VisionKit 和微信提供的傳感器 API 獲取數據、融合雲定位與本地 AR 跟蹤器結果、驅動場景中相機等其它部分物體的移動和渲染等。

flowchart LR
    Pose(VisionKit 相機位姿) -- 每幀同步 --> Session[Session]
    Image(計算該幀相機位姿所使用的相機圖片) -. 僅 Mega 定位時發送 .-> Session
    Sensor(微信傳感器數據) -. 異步 .-> Session
    Session -- Transform --> Camera(xr-frame 攝像機)

AR Session 的流程

flowchart LR
    Start((" "))
    End((" "))

    Init[Initializing]
    Run[Running]

    Check{Success?}

    Start -->|調用 start| Init
    Init --> Check

    Check -->|是| Run
    Check -->|否 / 重試次數超過上限| End

    Run -->|調用 stop| End

啓動: session 狀態轉爲 Initializing 。包含環境檢查、資源加載以及等待微信 xr-frame 的 AR 系統就緒。

運行: session 狀態轉爲 Running 。在此階段,session 每幀輸出跟蹤結果並更新 xr-frame 相機的 Transform。

停止: session 狀態轉爲 None 。包含釋放資源、重置狀態、銷燬 MegaTracker。

警告

AR 功能必須在 session 啓動成功後才能使用。

AR Session 狀態:

狀態 描述
None 初始狀態,session 未啓動或初始化失敗
Initializing 初始化過程中
Running 運行狀態,session已啓動且初始化完成

[可選] 微信小程序插件上的 AR Session 與 Unity 上的 AR Session

附註

僅針對 Unity 項目遷移的開發者。

Mega 微信小程序插件上的 AR Session 是 Unity 上 AR Session 的簡化版本。由於不支持其他算法組件同時使用,微信小程序上的 AR Session 使用預集成的數據源組件和算法組件,用戶不能選擇數據源和/或組裝算法組件。

此外,可以認爲 Mega 微信小程序插件僅支持以 Block 爲 target 且使用以 target 爲中心的中心模式。

後續步驟

相關主題