Вчера корпорация Apple выпустила новую тестовую версию операционной системы VisionOS 26.4 для яблочных гарнитур Apple Vision Pro. Разработчик яблочного варианта VR-стримера ALVR ShinyQuagsire обнаружил, что в документации на API появилась новая подсистема — ямковый стриминг.
Как и следует из названия, API ямкового стриминга позволяет создавать приложения для VIsion Pro и iOS, которые могут принимать VR-картинку с ПК (на Windows или Linux), при этом область, куда не смотрит пользователь, передаётся в низком разрешении и экономит ресурсы видеочипов и сети (которой у Vision Pro немного — поддержки 6ГГц-WiFi нет; iOS же использует простую передачу картинки). API задаёт стандарт поиска серверов ямкового стриминга в локальной сети, а также описывает специальное «пространство» (FoveatedStreamingSpace), в которое напрямую передаётся картинка в ямковом формате без возможности доступа к этой картинке на стороне приложения.
При этом приложения могут создавать в этом пространстве свои MR-объекты с помощью API RealityKit. Apple предлагает размещать в нём более лёгкие объекты окружения — например, кабину самолёта и все её инструменты, при этом задний план картинки будет транслироваться с ПК. Данные приборов при этом можно передавать и получать через специальный канал сообщений, который Apple предоставляет по потоку ямкового стриминга. Таким образом Apple по сути реализовала идею разделённых вычислений, только в связке с ПКVR — часть данных рендерится и считается на самой гарнитуре, остальная часть — на ПК.
На стороне ПК Apple предлагает установить стример Nvidia CloudXR. CloudXR — это уже давно существующий и недавно обновившийся SDK от Nvidia, который передающий AR/VR-картинку на зоопарк гарнитур, включая Quest, Pico и теперь WebXR-браузеры, iOS в плоском режиме с трекингом и Vision Pro. Если до версии 6.0 SDK был по сути SteamVR-драйвером, передающим картинку OpenVR- и OpenXR-приложений из SteamVR в гарнитуру, то с версии 6.0 он стал самостоятельным OpenXR-рантаймом, работающим без SteamVR только с OpenXR-приложениями, но зато работающим и на Windows, и на Linux. Более того, CloudXR 6.0 самым удобным случайным образом получила поддержку тех самых ямковой передачи данных, шифрования с баркодами и канала сообщений из Vision Pro.
Apple по сути не скрывает, что добавила такой ямковый/MR-стриминг для очень конкретных очень бизнесовых и очень военных клиентов, которые обычно используют для таких же целей гарнитуры Varjo. При этом даже ямковый стриминг не был написана с нуля; вместо этого Apple спрятала в VisionOS клиент CloudXR, почти не упоминая его вслух, и раскрыла часть документации о том, как настроить автопоиск серверов стриминга и запустить сервер CLoudXR с нужными параметрами.
Как должен работать сервер стриминга, чтобы передавать картинку в высоком разрешении и получать данные айтрекинга без использования SDK и видеокарт Nvidia, изучать придётся уже реверсерам ALVR.
Источники:




