Page cover

Как работает PCVR

Введение

Всем привет! Возможно вы задумывались, как же работает PCVR? Какие технологии за этим стоят? Предлагаю ответить на эти вопросы в этой статье. Разберем в общем и на примерах разного софта для стриминга PCVR.

Компоненты системы:

  1. Стример (серверная часть на ПК)

  2. Клиент (приложение на VR гарнитуре)

  3. Сетевой транспорт (WiFi или USB соединение)

А вот как они взаимодействуют. Путь одного кадра:

  1. Сбор данных отслеживания на клиенте (компьютер по сути спрашивает "что где находится?")

  2. Передача данных трекинга

  3. Рендеринг кадра на ПК

  4. Компрессия изображения для экономии трафика, выполняется на аппаратном уровне видеокартой

  5. Передача кадра на шлем

  6. Декодирование на гарнитуре

  7. Корректировка изображения (линзы кривые, помним это) и, наконец, отображение на дисплеях

Как шлем связывается с вашим ПК

  • Если вы подключаетесь по Meta Link/AirLink, она выглядит так:

  • Общая таблица беспроводного PCVR:

Как можно заметить, выгодно выделяется OpenXR. Он универсален, без прослоек работает с различными стримерами и это хорошо сказывается на производительности.

OpenVR же требует для своей работы SteamVR, который ест производительность из-за прохождения через Steam прослойку.

Программы для беспроводной игры

Virtual Desktop

circle-info

Это знать надо, это то, чем пользуются многие. Лучше не найдешь, про него есть отдельно в нашей вики. Поддерживает большинство автономных шлемов.


Поддержка кодеков:

  1. h.264

  2. h.264+

  3. HEVC (он же h.265), также есть 10-битный вариант. Он немного лучше обычного

  4. AV1 (только если у вас RTX 40XX, RX 7XXX и выше. А также Quest 3 или Pico 4 Ultra)

Максимальный битрейт 400 Мбит/с при использовании h.264+

circle-info

Также имеется автоматическая регулировка битрейта в зависимости от возможностей сети, по умолчанию включена.

Синхронизация и задержки:

  • SSW (Synchronous Space Warp) для сглаживания падений частоты кадров, а также для тех случаев, когда компьютер ну совсем не вытягивает игру. Помогает получить в два раза больше кадров в цену небольших артефактов.

  • Задержка motion-to-photon (от движения, до его результата в экране): 30-40 мс при оптимальных условиях

  • Задержки помимо рендера приблизительно 5.6 мс в оптимальных условиях

Уникальные оптимизации:

  1. Snapdragon GSR (Game Super Resolution) - апскейл кадра, помогает выглядеть игре лучше. Имеет смысл до пресета High и до 90 FPS.

  2. Возможность напрямую стримить игры из Oculus без использования Revive

  3. Двойное кодирование - игра будет выглядеть круче там, где происходит много движения.

  4. OpenXR-среда VDXR, которая благодаря различным оптимизациям дает 20-30% буст к производительности игры.

circle-exclamation

Конвейер передачи данных (тут все интересно):

  1. Стример получает входные данные от гарнитуры

  2. Рендеринг кадра

  3. Стример кодирует буферы глаз (eye textures) через H.264 (другие кодеки не поддерживаются)

  4. Передача закодированных кадров по частям (slices) клиенту через Wi-Fi

  5. Клиент декодирует, корректирует и передает кадр в композитор Quest

  6. Клиент также отправляет обновления позиции и состояния ввода

Технические особенности

ASW (Asynchronous Space Warp) - схожая технология с SSW из Virtual Desktop

AADT (Axis-Aligned Distortion Transmission):

  1. Вместо прямой передачи "сырых" изображений и последующего искажения в шлеме, (Air-)Link применяет искажение по осям

  2. Сжатие пары буферов глаз с 3616x2000 до 2016x1120, выходит экономия ~70% пропускной способности

  3. На гарнитуре изображение восстанавливается до исходной формы перед отображением

Временная синхронизация и предсказание:

  1. Использование Asynchronous Timewarp (ATW) для гарантии готовности кадра. Является частью ASW.

  2. Adaptive Compositor Kickoff (ACK) для точного расчета времени запуска композитора

  3. Оценка общей задержки и динамическая настройка предсказания положения

Производительность:

  • Общая задержка: около 54.8 мс в тесте с RTX 3090

  • Всё помимо рендера игры: примерно 5.6 мс при оптимальных условиях

Решение от Valve для прямого подключения Quest к SteamVR без использования лишнего ПО. Может передавать ещё и просто экран. Можно играть в обычные плоские игры.

По сути просто базовый стример за бесплатно.

Поддерживаемые гарнитуры: Meta Quest 2, 3, Pro

Компоненты системы:

  1. Steam и композитор SteamVR на ПК

  2. Приложение Steam Link в шлеме из магазина Meta

circle-info

В Steam Link нет выбора кодеков, поэтому исходя из возможностей железа, идёт автоматический выбор между кодеками HEVC и H264

ALVR

circle-exclamation

Стример есть только для Linux и Windows 10/11 А вот клиент есть на все, где есть VR

платформы, где есть ALVR

Поддержка всех кодеков, включая AV1. Прям как у VD. Но настраивать придется вручную, в базе вы получите не самую крутую картинку, хотя играть можно.

Fixed Foveated Rendering (FFR) - отрисовка изображения в более низком разрешении по краям, там, куда вы будете смотреть реже всего. Зато сэкономит ресурсы видеокарты.

Схема домашней сети

С программами мы разобрались, но теперь нужно понять как сделать нашу домашнюю сеть пригодной для беспроводной игры с нашим шлемом.

У нас есть для вас прекрасная схема:

Схема отличная, прошла испытание временем. При выборе нужных Wi-Fi роутеров рекомендуем заглянуть в наш список

Последнее обновление