Концепция и рабочий процесс megatracker
В этом документе представлены основные концепции MegaTracker, а также взаимосвязь между MegaTracker, нативной AR-системой WeChat VisionKit и фреймворком рендеринга xr-frame.
Перед началом работы
Ознакомьтесь с введением в Mega, чтобы понять:
- Основные принципы позиционирования и отслеживания Mega.
- Что такое Mega Block.
- Ожидаемые результаты после интеграции с Mega.
Что такое трекер плоскости AR
Трекер плоскости AR во фреймворке xr-frame по сути является обёрткой для возможности 6DoF-плоскости VisionKit.
После включения isARCamera в компоненте камеры xr-frame, трёхмерное преобразование камеры синхронизируется с каждым кадром с AR-системой (VisionKit).
xr-frame обеспечивает возможности 3D-рендеринга, а VisionKit предоставляет возможности отслеживания движения в системе координат реального пространства.
Трекер плоскости AR нельзя использовать совместно с другими AR-трекерами.
Что такое megatracker
MegaTracker — это ключевой алгоритмический компонент, связывающий AR-систему WeChat (VisionKit) с сервисом пространственных вычислений Mega, обеспечивающий функцию облачного позиционирования.
- Входные данные: позиция и ориентация камеры в системе координат VisionKit (т.е. данные 6DoF), вычисляемые VisionKit для каждого кадра, и изображение с камеры в момент кадра, используемого для позиционирования 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
- В нативном потоке данных WeChat компонент камеры xr-frame обновляется с каждым кадром напрямую результатами работы трекера плоскости AR.
- В потоке данных мини-программы Mega позиция и ориентация камеры в системе координат VisionKit (т.е. данные 6DoF) и данные изображения кадра позиционирования передаются на вход MegaTracker. После облачного позиционирования и локальных вычислений на выходе получается позиция и ориентация камеры в текущем отслеживаемом Mega Block. В итоге обновляется LocalTransform камеры в сцене xr-frame относительно узла Mega Block. На этом этапе MegaTracker берёт на себя управление камерой, и xr-frame больше не обновляет камеру на основе AR-трекера.
Работа MegaTracker глубоко зависит от данных движения 6DoF, предоставляемых трекером плоскости. Поэтому MegaTracker не может начать работу до тех пор, пока трекер плоскости не завершит инициализацию и не установит стабильное состояние отслеживания. Кроме того, стабильность AR-отслеживания ограничена особенностями окружения; в экстремальных сценариях, таких как большие однородные поверхности (например, белая стена) или длительное перекрытие камеры, если нативный трекинг плоскости WeChat теряет стабильность или срывается, MegaTracker потеряет надёжный источник входных данных и синхронно перейдёт в нерабочее состояние.