Руководство по получению максимально качественной картинки при игре через ПК (стрим) по проводному и беспроводному Oculus Link

Инструкция по настройке проводного Oculus Link:
- OculusDebugTool выставить Link sharpening enabled. Это новый параметр, он повышает четкость картинки без потери производительности. Но возможно в некоторых случаях можно оставить и на авто режиме.
- В OculusDebugTool выставить Encode bitrate 400 (если проблем не будет, можно 500) Этот параметр позволит избавится от артефактов сжатия. В новых прошивках и программе для Link для применения нужен перезапуск. Через приложение на ПК->настройки->бета->перезапуск. (чтобы вернуть стандартное значение, поставьте 0 и перезапустите. 0 в данном случае равняется 150-200мбит на практике). Выставление данного параметра ломает AirLink! ЧТобы починить — сбросить на 0. Для карт GTX1000 серии стоит ставить 300 мбит, для rtx2000 и rtx3000 400 и выше. Данный пункт не влияет на fps, если видеодировщик на карте достаточный (на старых AMD RX580\8, например он ужасный и там больше примерно 100 битрейт не тянет, а на Nvidia GTX1060 — все норм)
- В OculusDebugTool выставить Encode resolution width 3970. Если не работает или вызывает глюки/артефакты в нижней части экрана, то сбрасывайте на 0. Для применения нужен перезапуск. Через приложение на ПК->настройки->бета->перезапуск. При достаточно мощном кодировщике данный параметр улучшает картинку без потери производительности. НО на картах со слабым кодировщиком будут лаги и потери кадров (например AMD RX580 8Gb мог кодировать только около 2000 в этом значении) Этот параметр сделает получаемую итоговую(после рендера и адаптации под линзы) картинку на шлеме более четкой, за счет передачи итогового видеопотока на шлем в бОльшем разрешении. По умолчанию при выставлении 0 применяется значение 3680, если карта GTX1000 версии и новее, иначе автоматически снижается в зависимости от видеокарты. после тестов замечено, что увеличение данного параметра может добавлять микроподлагивания рук. Если встречаетесь- лучше сбросить.
- В OculusDebugTool: distorsion curvature high. Этот параметр позволит получить бОльшую четкость картинки по центру линз. Для применения нужен перезапуск софта oculus. Но возможно данный параметр требует перепроверки.
- Изменение Encode bitrate и Encode resolution widte и distorsion curvature НЕ вызывает уменьшения fps в самой игре, если в видеокарте достаточно мощный блок кодирования видео. Но может незначительно увеличить задержку motion-to-photon.(самая полная задержка от движения головы/контролера до показа этого на экране шлема, сравнивать с задержкой в VD не корректно.) Также encode resolution width может влиять на микроподлагивания рук, если сталкиваетесь, лучше не увеличивать и оставить на 0
- В данном пункте в настройках quest 2 в программе для Link на ПК надо выставить герцовку экрана и ренедера картинки. Для начала советую поставить 80HZ, а далее отталкиваться от производительности видеокарты. 80Hz позволит убрать противное мерцание белого цвета на экране. Каждый шаг герцовки потребляет примерно 10% производительности.
- Далее нам надо выставить разрешение рендера. Оно напрямую влияет на качество картинки, но также сильно бьет по FPS и нагрузке на видеокарту/потребление видеопамяти.
Есть варианты:
- Увеличивать разрешение рендера приложений и игр глобально, через приложение Oculus-> настройки устройства. Здесь задается базовое разрешение, идущее далее как 100% в SteamVR.
- Увеличивать разрешение в SteamVR или в отдельных играх в SteamVR или в самих играх. При выставлении целевого разрешения в стим потребляется чуть-чуть меньше видеопамяти НО важно снять галочку про дополнительную фильтрацию в надстройках видео в SteamVR.
- Так же стоит учесть, что есть игры, которые самостоятельно увеличивают и уменьшают разрешение динамически, «отплясывая» от установленного.(SteamVR Home, HalfLife:Alyx)
- В целом по итоговой четкости картинки нет разницы, где именно выставлять, главное итоговое разрешение в пикселях(точках). Не в процентах в SteamVR, и не в множителе в программе для Link(он очень абстрактен, бесполезен и не постоянен). Для SteamVR игр итоговое разрешение пишется в настройках SteamVR, для игр на Oculus SDK значение сразу берется из настроек программы для Link.
Идеальное для Oculus Quest 2 разрешение — 5408×2736 включительно и выше(суперсемплинг). С данным разрешением мы получим четкость картинки пиксель приложения в пиксель экрана в центре изображения. Т.е. 5408×2736 действительно «нативное» разрешение рендера для quest 2. Кратко: Оно больше разрешения экрана из-за необходимости устранения искажений линз и угла обзора. Так на всех гарнитурах ,что разрешение рендера больше разрешения экрана примерно на 30-40%. ПРУФ от разработчика Oculus: https://www.reddit.com…_true_11_apptodisplay/ Т.е. разрешение вплоть до 5408×2736 это не суперсемплинг, а андерсемплинг в центре линзы/экрана.
НО стабильно потянуть такое разрешение на 90Hz сможет разве что Nvidia RTX3080-3090. Поэтому нам надо нащупать оптимальное значение для своей карты. Для понимания запаса производительности в VR игре используйте Overlay HUD -> perfomance в Oculus debug tool Например на Nvidia RTX3070 разрешение рендера обычно получается выставить в районе 4400*2200, на более слабых картах это будет еще меньше. - В настройках игры выставить настройки на свой вкус и производительность видеокарты. Главное стараться получить максимальное разрешение(качество) рендера. Обратите внимание, что иногда игры подстраивают разрешение рендера на ходу, тем самым портя картинку, но добиваясь приемлемой производительности.
- Лучше стараться запускать игры в обход SteamVR, используя Oculus SDK. Это сэкономит несколько гигабайт видеопамяти, сделает более отзывчивым управление, картинку более четкой, производительность более высокой. Для этого надо запускать игры со специальным аргументом, и иногда с закрытым SteamVR. Или выбирать какую версию запустить в интерфейсе Steam. При запуске игр без SteamVR, очевидно, не учитываются настройки SteamVR, а сразу берутся из программы Oculus.
- Настройки указанные выше не слетают, выставить достаточно один раз, но разрешение рендера и частоту обновления экран (72-80-90Hz) может потребоваться менять под конкретную игру, чтобы не тормозило.
ВНИМАНИЕ 1! Если предметы и руки в игре начали двоиться при движении, значит видеокарта не справляется и сваливается в репроекции (ASW — Asynchronous SpaceWarp) на половинной частоте обновления экрана. Их можно выключить, но НЕ в гонках и НЕ симуляторах с ними будет лучше(если видеокарта только иногда в них сваливается. Это можно увидеть включив Visible HUD prformance в OculusDebugTool.
ВНИМАНИЕ 1.1! При активации и снижении fps из-за ASW карта может быть нагружена НЕ на полную, это нормально, так как карта не справилась с полной нагрузкой и начинает справляться хотя бы с половиной. Поэтому при этом нагрузка видеокарты в районе 55-90% это норма. Пока не опустится до стабильных <50% нагрузки fps не восстановится, так как мощностей все еще мало. Адаптивный ASW может немного поменять ситуацию. Включать его через отдельную программу Oculus tray tool.
ВНИМАНИЕ 2! На разных видеокарточках(далее GPU) с разной производительностью настройки могут отличаться. В первую очередь стоит снижать разрешение рендера.
ВНИМАНИЕ 3! На картах AMD из-за более слабого кодировщика выставление битрейта и encoding width может давать лаги.
ВНИМАНИЕ 4! Если происходят проблемы с производительностью на любых настройках, то может помочь переустановка с удалением остатков и настроек SteamVR beta, и ПО Oculus.
ВНИМАНИЕ 5! Не забывайте обновлять драйвера для видеокарт, Nvidia в начале 2021 года сильно исправили работу в VR.
Инструкция по настройке беспроводного Oculus Link (AirLink):
Все настройки аналогичны предыдущей инструкции, кроме первого пункта. В OculusDebugTool обязательно выставить Encode bitrate 0 и перезапустить программу, как сказано выше.
- Важно определить максимальный возможный битрейт на вашем роутере, так как по умолчанию используется динамический плавающий битрейт с ограничением в 100мбит. Битрейт зависит от скорости вашей wifi сети и качества роутера (а не только теоретические цифры скорости с его коробки) и того, как подсоединен ПК к роутеру (для нормальной работы обязательно подключение по 1000мбит(1Гбит) кабелю)
- Динамический битрейт дает лучшую стабильность, но качество картинки может прыгать.
- Если выросла задержка и картинка лагает, значит роутер или видеокарта не справляется, снижайте битрейт.
- AirLink немного увеличивает задержку (на 10-15мс), но это сильно зависит от мощности роутера.
- При одинаковом битрейте картинка по AirLink и проводному Link одинаковая. Но из-за бОльшего максимального битрейта и стабильности, по проводу картинка все-таки стабильнее.