Поддержка headset и glasses в EasyAR
EasyAR SDK предоставляет мощные кроссплатформенные AR-возможности, и его концепция также подходит для новых spatial computing devices - headset. В этой статье объясняется, как EasyAR поддерживает headset-устройства и как разработчики могут использовать эти функции для создания immersive experience.
Терминология
В этом документе под "headset" или "Headset" понимается тип вычислительного устройства, которое носят на голове и которое поддерживает immersive или see-through взаимодействие. Такие устройства могут отображать виртуальный контент перед глазами пользователя, обеспечивая augmented reality (AR) или mixed reality (MR) experience. Это включает:
- Optical See-Through, OST Headset: позволяет пользователю напрямую видеть реальный мир через полупрозрачные линзы.
- Video See-Through, VST Headset: захватывает реальный мир через camera и показывает его в виде video stream. Обычно headset также называют AR glasses, MR glasses или VR helmet. Конкретные названия могут отличаться в зависимости от производителя и типа устройства, но в этой статье мы используем "headset" как общее обозначение этого типа устройств.
Основной принцип работы headset
Чтобы лучше понять принцип поддержки headset в EasyAR, сначала нужно понять базовый рабочий процесс headset-устройств:
- Environmental sensing: с помощью нескольких встроенных камер, depth sensor (например, iToF) и inertial measurement unit (IMU) устройство в реальном времени воспринимает геометрию окружающей среды, освещение и поверхности объектов.
- Spatial computing: на основе данных сенсоров SLAM system в реальном времени отслеживает 6DoF pose головы пользователя (position + orientation).
- Content rendering and display: 3D content (например, модели и special effects) рендерится в соответствии с pose устройства и выводится на display screen. В VR mode показывается только чисто виртуальное изображение; в AR/MR mode виртуальное изображение совмещается с реальной средой (VST camera image или OST see-through background).
- Interaction system: получает команды пользователя и отвечает через controller, gesture recognition, voice или eye tracking.
Принцип поддержки headset в EasyAR
EasyAR не заменяет native spatial tracking или rendering pipeline headset, а работает совместно с ними как "spatial computing enhancer". Как профессиональный AR algorithm engine, он предоставляет spatial perception и computing capabilities для разных AR-сценариев и эффективно сотрудничает с родной системой устройства.
| Scope of Responsibility | Role Division |
|---|---|
| 6DOF head tracking, display rendering, basic interaction и т. д. | Native SDK/runtime headset |
| Продвинутые возможности восприятия, такие как image/object recognition и tracking, а также large-scale spatial positioning | EasyAR SDK |
EasyAR SDK предоставляет основные AR-функции для понимания мира, такие как image/object recognition, sparse reconstruction, dense reconstruction и large-scale spatial positioning. Он отвечает за "понимание" мира и за то, чтобы сказать приложению headset, куда размещать virtual content.
EasyAR SDK интегрируется в framework разработки приложений headset (обычно Unity или Unreal) как plugin или library. Он получает исходный data stream от system устройства, обрабатывает и вычисляет его, а затем выдаёт pose matrix относительно spatial coordinate system устройства. В итоге rendering pipeline engine headset рисует virtual objects в правильном месте.
Статус поддержки и способы реализации
EasyAR обеспечивает полноценную поддержку основных platform разработки headset, главным образом двумя способами:
- Через Unity/Unreal Engine: это самый распространённый и рекомендуемый путь. Производители headset обычно предоставляют специальные Unity/Unreal plugins или XR SDK. EasyAR можно бесшовно интегрировать в SDK производителей.
- Через Native platform: для сценариев, требующих экстремальной производительности или специфической native разработки, можно использовать native interfaces EasyAR на C++, Java или Objective-C. Обычно это требует от разработчика самостоятельно настраивать interface docking с низкоуровневыми данными устройства.
EasyAR уже был протестирован и подтверждён на нескольких основных headset platform через Unity. Подтверждённо поддерживаемые устройства:
| Модель гарнитуры | Vendor SDK and version requirement | System and firmware version requirement |
|---|---|---|
| Apple Vision Pro | ARKit in visionOS | visionOS 2 или новее |
| PICO 4 Ultra1 | PICO Unity Integration SDK 3.4.0 или новее | Версии, заявленные как поддерживаемые SDK производителя2 |
| PICO Space Pro1 | PICO Unity Integration SDK 3.4.0 или новее | Версии, заявленные как поддерживаемые SDK производителя2 |
| Meta Quest 3/3S3 | Meta MRUK (Mixed Reality Utility Kit) 201 или новее | Версии, заявленные как поддерживаемые SDK производителя2 |
| Rokid Max Pro (Rokid AR Studio or other officially supported Rokid usage methods) |
Rokid Unity OpenXR Plugin 3.0.3 или новее | Версии, заявленные как поддерживаемые SDK производителя2 |
| XREAL Air2 Ultra | XREAL SDK 3.1 или новее | Версии, заявленные как поддерживаемые SDK производителя2 |
| Xrany X1 | Xrany Yuanni SDK | Версии, заявленные как поддерживаемые SDK производителя2 |
Примечание
Rokid Max Pro можно поддерживать через Rokid Unity OpenXR Plugin для Rokid UXR 3, но рекомендуется использовать XR Interaction Toolkit, особенно при cross-device использовании.
Важно
И Apple Vision Pro, и XREAL требуют соответствующего enterprise authorization для использования. Если у вас есть вопросы, свяжитесь с отделом продаж.
- Из-за ограничений interface authorization Apple Vision Pro поддерживаются только устройства с Apple enterprise API license.
- Из-за ограничений interface authorization XREAL поддерживаются только устройства с enterprise authorization.
Для headset-устройств других производителей, не упомянутых выше, EasyAR предоставляет расширенный способ подключения, например custom cameras. Вы можете обратиться к Create an EasyAR Headset Extension Package для подключения и выполнить docking самостоятельно.
Обычно это включает следующие шаги:
- Получить права разработки устройства: подать заявку на developer account и SDK documentation для целевого headset.
- Получить потоки данных сенсоров: получить из SDK устройства необходимые данные, такие как camera images (video frames) и camera parameters.
- Вызвать EasyAR API: использовать low-level API EasyAR, чтобы передать полученные sensor data в EasyAR
FrameSourceдля обработки. - Получить и применить результаты вычислений: получить из EasyAR engine результаты вычислений (camera pose) и применить их в вашем 3D rendering engine.
Мы предоставляем подробные руководства и sample code, чтобы помочь вам завершить этот процесс. Если в процессе интеграции возникнут проблемы, вы можете обратиться за технической поддержкой в нашем developer community.
Доступные основные функции
На headset-устройствах вы можете в полной мере использовать функциональную матрицу EasyAR для создания богатых spatial applications:
- Planar Image Tracking: распознавать и отслеживать заданные изображения, накладывая на них динамические видео или 3D-модели.
- 3D Object Tracking: распознавать и отслеживать заданные 3D-модели (например, игрушки и коробки товаров) и позволять virtual content взаимодействовать с ними.
- Sparse Spatial Map: сканировать окружающую среду для создания 3D visual map и предоставлять визуальное позиционирование и tracking. Сгенерированную карту можно сохранять или делиться ею в реальном времени между несколькими устройствами.
- Dense Spatial Map: сканировать и создавать dense point cloud map и mesh model (Mesh) окружающей среды, чтобы реализовать физическую occlusion между виртуальными и реальными объектами, значительно повышая immersion.
- Cloud Image Recognition: подключаться к облачной базе данных EasyAR для распознавания и управления большим количеством изображений, подходит для выставок и образования.
- Mega Large-Scale Spatial Positioning: city-level spatial computing solution, подключающееся к облачному сервису позиционирования EasyAR для стабильного, быстрого и точного позиционирования и tracking, значительно расширяя возможности AR experience.
Платформенные руководства
Чтобы помочь вам быстро начать работу с конкретными платформами, мы подготовили подробные multi-platform integration guides. Нажмите на вкладки ниже, чтобы посмотреть quick-start tutorials для соответствующих платформ.
- Introduction
- Using Headset Samples
- Enabling Headset Support
- Project Configuration
- Create an EasyAR Headset Extension Package
-
Требуется использовать EasyAR Sense Unity Plugin PICO Extension 4000.1 или новее + EasyAR Sense Unity Plugin 4003.1 или новее. Более ранние версии поддерживают только PICO 4 Ultra Enterprise devices и требуют enterprise interface authorization от производителя PICO.↩↩
-
Совместимость системы и прошивки поддерживается производителем. EasyAR предоставляет только поддержку совместимости с SDK производителя.↩↩↩↩↩↩
-
Требуется EasyAR Sense Unity Plugin 4003.1.1 или новее.↩