Оглавление:
Доступно новое API камеры «Passthrough» для разработчиков Quest
С нетерпением ожидаемый API камеры «Passthrough» теперь доступен для всех разработчиков Quest для экспериментов, однако они пока не могут включить его в приложения, предназначенные для продажи в магазине приложений. Эту возможность объявили на конференции Meta Connect 2024 в сентябре, и она стала доступной как экспериментальная функция для Quest 3 и Quest 3S. Разработчики могут тестировать её и даже распространять APK-файлы с использованием этого API на платформах вроде SideQuest, но пока не могут добавлять её в приложения для Meta Horizon Store.
Несколько избранных разработчиков уже некоторое время имели доступ к этому API для проведения экспериментов, и Meta планирует привлечь компании Niantic, Creature и Resolution для обсуждения новой функциональности на следующей неделе на конференции GDC.
Что такое доступ к камере «Passthrough»?
Точки доступа к камерам «Passthrough» были доступны лишь системному ПО гарнитуры до сих пор. Разработчики сторонних приложений могли использовать «Passthrough» только как фон, не имея реального доступа к камере. Они получали данные более высокого уровня, предоставленные системой, такие как координаты скелета рук и тела, трёхмерная модель окружения с границами для мебели, а также ограниченные возможности отслеживания объектов. Это ограничивало возможности по расширению функционала гарнитур. Исключением был доступ к камерам «Passthrough» от Apple для корпоративных клиентов в рамках системы visionOS 2, но он требовал специальной лицензии и ограничивался использованием только в бизнес-среде.
Для работы API камеры «Passthrough» пользователь должен предоставить приложению разрешение на доступ к камерам гарнитуры, так же как и к микрофону. Если разрешено, приложение получает доступ к передним цветным камерам, включая метаданные, такие как параметры объектива и позиция гарнитуры, которые оно может использовать для запуска собственных моделей компьютерного зрения.
Примеры использования этой возможности включают в себя сканирование и отслеживание QR-кодов, обнаружение игрового поля на столе для добавления виртуальных персонажей и объектов, обнаружение физических объектов для инструкций в корпоративной сфере, или интеграцию функций визуального ИИ облачных моделей больших языков (LLM). Разработчики ограничены лишь моделями компьютерного зрения в реальном времени, которые могут эффективно работать на чипсете XR2 Gen 2, либо моделями обработки изображения, на которые они готовы платить.
Технические особенности доступа к камере «Passthrough»
Поток видео с камеры «Passthrough» предоставляется приложению с разрешением до 1280×960 при 30FPS и заявленной задержкой 40-60 миллисекунд, что делает его неподходящим для отслеживания быстро движущихся объектов, например, пользовательских контроллеров.
Технически базовый уровень не имеет специфичного API камеры Meta Quest Passthrough, он не является расширением OpenXR. Разработчикам необходимо запросить специфическое разрешение на доступ к камерам гарнитур Horizon OS, но в остальном доступ к камерам «Passthrough» Quest использует существующее Android API Camera2, которое также возвращает позу гарнитуры, полученную с OpenXR. Это означает, что тот же код будет работать и на будущей платформе Android XR от Google, которая дебютирует в гарнитуре Samsung, с различным лишь запросом разрешения.
Для Unity разработчики получают доступ к камерам через API WebCamTexture Unity, который уже используется для доступа к камерам телефонов, планшетов и веб-камер в движке. Однако ограничение заключается в том, что API WebCamTexture Unity поддерживает только одну камеру одновременно, а не обе.
Интересующиеся разработчики могут найти документацию по доступу к камере «Passthrough» Quest здесь: Unity / Native Android.
Meta опубликовала пять официальных примеров Unity на GitHub: CameraViewer, CameraToWorld, BrightnessEstimation, MultiObjectDectection, ShaderSample. Кроме того, инженер-программист Meta Роберто Ковиелло отдельно опубликовал на GitHub коллекцию из пяти дополнительных примеров QuestCameraKit: Color Picker, Object Detection with Unity Sentis, QR Code Tracking with ZXing, Frosted Glass Shader, и OpenAI vision model.

