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

后续步骤

相关主题