Разработчики приложений виртуальной реальности выяснили, что интеграции Unity и Unreal с OpenXR в SDK Meta* блокируют другие очки для ПК, давая последней неконкурентное преимущество при работе с популярным открытым стандартом. Khronos Group решила смягчить проблему, а Meta сохраняет молчание.
OpenXR — это открытый стандарт API для иммерсивных устройств и программного обеспечения, его поддерживает огромное количество отраслевых компаний и независимых разработчиков. Идея стандарта в том, что люди могут создавать приложения, которые работают на любых очках, без необходимости использовать API от поставщиков оборудования. Реальность, как выяснилось, сложнее.
Практически каждые очки на рынке и каждая среда выполнения (кроме Vision Pro и PlayStation VR2) поддерживают OpenXR. Но такие компании, как Meta и Pico, по-прежнему предлагают собственные интеграции для Unity и Unreal. Эти интеграции с движками обещают лучшее из обоих миров: поддержку OpenXR и уникальных функций, еще не представленных в стандарте. Но Meta обещание не выполняет.
Сейчас движки Unity и Unreal через интеграцию Meta на ПК в работают только с Rift и очками, подключёнными по Quest Link, то есть Quest. Независимые тесты это подтвердили. Ситуация означает, что любой разработчик, использующий эти интеграции, которые Meta рекомендует и продвигает, должен реализовать отдельную подсистему для поддержки других очков. Эту проблему должен решать OpenXR, который в Meta публично поддерживают, хотя на деле ведут себя иначе. Вот почему многие игры виртуальной реальности на компьютерах по-прежнему полагаются на устаревший API OpenVR от SteamVR, а не OpenXR.
Данный вопрос уже несколько месяцев публично поднимает разработчик программного обеспечения Матьё Буккианери. Он работал над PS4 и оригинальными PlayStation VR в Sony, проектами Falcon 9 и Dragon в SpaceX, а также над HoloLens и Windows MR в Microsoft, где в настоящее время и трудится над Xbox. В Microsoft он внёс свой вклад в OpenXR, а в свободное время разработал OpenXR Toolkit и VDXR, среду выполнения OpenXR для Virtual Desktop.
Автор закрыл OpenXR Toolkit в 2024 году, поскольку призывает разработчиков интегрировать OpenXR. Он добавил уведомление на сайт OpenXR Toolkit, критикующее интеграции Meta с Unity и Unreal, а также страницу с объяснением проблемы.
С 2024 года экосистема OpenXR на ПК «в плохом состоянии», пишет разработчик:
Это не случайность: об этой проблеме Meta сообщили в начале 2024 года через официальные каналы в группе Khronos. Meta признала, что в то время намеренно блокировала запуск контента OpenXR на других платформах.
Это не техническое ограничение: некоторые среды выполнения (VDXR) приложили большие усилия для внедрения режимов «совместимости». Существуют контрмеры для разблокировки контента на любой платформе, но их исследование и реализация очень дороги.
Это не недостаток OpenXR: как доказано многими приложениями, использующими OVRPlugin с включёнными контрмерами, эти приложения могут работать на соответствующей реализации OpenXR.
Разочарованный тем, что консорциум Khronos, стоящий за OpenXR и другими популярными API, такими как Vulkan и OpenGL, не предпринимает никаких действий против Meta, Буккианери попросил удалить своё имя из спецификации OpenXR и общедоступных документов с дополнительным объяснением проблемы.
После демарша Буккианери Khronos опубликовала заявление. Организация говорит, что «признаёт проблемы, с которыми разработчики столкнулись из-за устаревших API и специфичного для платформы поведения, которые ограничивают переносимость приложений XR», и «привержена развитию OpenXR путём включения расширений поставщиков в основную спецификацию».
Консорциум ссылается на документы по встроенной кроссплатформенной поддержке OpenXR для Unity, Unreal и Godot и рекомендует разработчикам использовать их. Единственное упоминание Meta в заявлении говорит об обсуждении проблемы сообществом.
Буккианери это не удовлетворило. Он считает, что интеграции Meta и отсутствие действий Khronos против Meta снизили ценность OpenXR:
К сожалению, с 2024 года Khronos отказывается предпринимать действия, чтобы остановить разрушительную инициативу OVRPlugin от Meta в отношении экосистемы ПК ВР. Не предпринимая никаких действий для решения проблем, созданных OVRPlugin от Meta, Khronos сигнализирует, что OpenXR больше не является универсальным решением для поддержки разных поставщиков и платформ, что прохождение набора тестов на соответствие и получение статуса ничего не значат (соответствующие среды выполнения не могут запускать приложения OpenXR), и что логотип и торговая марка OpenXR больше не имеют того же значения, что и раньше, в экосистеме ПК ВР.
Ранее Meta озвучивала намерение отойти от собственной интеграции Unity в сторону поддержки встроенной подсистемы OpenXR в движке. Это не помешает компании добавлять новые функции, она уже реализует их как расширения OpenXR для приложений, использующих собственный движок, и может сделать тот же самое в Unity. Однако, несмотря на это, компания продолжает добавлять новые функции исключительно в свой собственный пакет интеграции. И если разработчики будут использовать только его, их приложения просто не смогут работать на других очках.
*В России признана экстремистской
Не пропускайте важнейшие новости о дополненной и виртуальной реальности — подписывайтесь на Голографику в Telegram, ВК и Twitter! Поддержите проект на Boosty.
Далее: Первые очки Samsung на Android XR могут получить дисплей лучше, чем в Vision Pro