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 為中心的中心模式。