Использование беспроводного подключения смартфона для VR на PC c видеокартами NVIDIA (используем смартфон вместо Oculus Rift, HTC Vivo,..)
Современные смартфоны можно вставить в очки за 1 т.р. и получить виртуальную реальность (VR). Но проблема в том, что эта VR мобильная - работают только мобильные игры.
А что вот если бы можно было играть на PC, а видео передавать по Wi-Fi на смартфон? Тогда бы можно было получить функционал очков за 40 т.р. заплатив 1 т.р. за пластиковую коробку для очков?
Кратко: да, это возможно и я расскажу как.
2. Смартфон с разрешением FullHD или большим.
3. Wi-Fi с возможностью подключения смартфона к ПК через сеть.
Этот экран монитора мы захватываем в видеопоток и отправляем на смартфон.
На смартфоне декодируем видео и отображаем на весь экран.
Управлять будем с клавиатуры сидя за ПК.
1.1 Устанавливаем драйвера NVIDIA с GeForce Experience.
1.2 Заходим в панель управления драйвером и включаем NVIDIA 3D Vision в режиме анаглифного видео (драйвер NVIDIA не поддерживает SBS).
1.3 Скачиваем программу 3DMigoto последней версии https://github.com/bo3b/3Dmigoto/releases и распаковываем ее. Это программа патчит DirectX таким образом, чтобы вместо анаглифного видео получить SBS (т.е. исправляет работу драйвера NVIDIA).
1.4 В распакованной папке лежит куча файлов для x64 и x86 игр (программ), написанных с использованием DirectX. В зависимости от того под какую архитектуру написана игра, надо скопировать файлы в ту папку с игрой, в которой находится запускающий игру EXE-файл. Windows увидит эти DLL и загрузит игру с ними вместо системных.
1.5 Открыть файл d3dx.ini из папки 3DMigoto и раскомментировать строчку "include = ShaderFixes\3dvision2sbs.ini" (удалить символ ";" в начале строки) в секции [Include].
1.6 В секции [Constants] файла d3dx.ini заменить "x7 = 0" на "x7 = 2" для активации SBS.
1.7 Запустить игру.
1.8 Нажать Ctrl+T для активации NVIDIA 3D Vision.
Если все сделали правильно, то вместо анаглифного стерео будет SBS.
Есть такое и для NVIDIA (Shadow Play). В нашем случае надо просто поставить на смартфон программу Moonlight https://moonlight-stream.com.
Программа Moonlight при запуске спросит к какому компьютеру подключиться. Укажите IP-адрес вашего ПК и она сама сможет подключаться к ПК и показывать экран с него с низкой задержкой.
Фактически программа получает видео с ПК и больше ничего не умеет, но больше и не надо, т.к. управлять мы собираемся с самого ПК.
Если все сделано правильно, на смартфоне мы увидим SBS видео как клон экрана монитора. Остается только вставить смартфон в очки.
Конечно, аналогичным образом можно запустить с ПК 3D-видео и отправиться на диван смотреть его в очках.
Подход в целом достаточно универсален, но надо иметь в виду, что возможны проблемы как с низкой скоростью работы Wi-Fi, так и с неполной совместимостью игр с 3Dmigoto (в частности, игра должна быть на DirectX). Ну и расстройство вестибулярного аппарата.
Если вы хотите смотреть только видео в SBS, запущенное с ПК, то 3Dmigoto и NVIDIA 3D Vision вам не нужны, просто установите Moonlight на смартфон.
А что вот если бы можно было играть на PC, а видео передавать по Wi-Fi на смартфон? Тогда бы можно было получить функционал очков за 40 т.р. заплатив 1 т.р. за пластиковую коробку для очков?
Кратко: да, это возможно и я расскажу как.
Технические требования
1. Видеокарта NVIDIA с поддержкой GameStream (проверялось на nvidia GTX 1060) и 3D Vision.2. Смартфон с разрешением FullHD или большим.
3. Wi-Fi с возможностью подключения смартфона к ПК через сеть.
Общие принципы
Нам надо добиться, чтобы игра показывалась Side by Side (SBS), т.е. кадр слева и кадр справа на экране монитора.Этот экран монитора мы захватываем в видеопоток и отправляем на смартфон.
На смартфоне декодируем видео и отображаем на весь экран.
Управлять будем с клавиатуры сидя за ПК.
Отображение игры в SBS
1.1 Устанавливаем драйвера NVIDIA с GeForce Experience.
1.2 Заходим в панель управления драйвером и включаем NVIDIA 3D Vision в режиме анаглифного видео (драйвер NVIDIA не поддерживает SBS).
1.3 Скачиваем программу 3DMigoto последней версии https://github.com/bo3b/3Dmigoto/releases и распаковываем ее. Это программа патчит DirectX таким образом, чтобы вместо анаглифного видео получить SBS (т.е. исправляет работу драйвера NVIDIA).
1.4 В распакованной папке лежит куча файлов для x64 и x86 игр (программ), написанных с использованием DirectX. В зависимости от того под какую архитектуру написана игра, надо скопировать файлы в ту папку с игрой, в которой находится запускающий игру EXE-файл. Windows увидит эти DLL и загрузит игру с ними вместо системных.
1.5 Открыть файл d3dx.ini из папки 3DMigoto и раскомментировать строчку "include = ShaderFixes\3dvision2sbs.ini" (удалить символ ";" в начале строки) в секции [Include].
1.6 В секции [Constants] файла d3dx.ini заменить "x7 = 0" на "x7 = 2" для активации SBS.
1.7 Запустить игру.
1.8 Нажать Ctrl+T для активации NVIDIA 3D Vision.
Если все сделали правильно, то вместо анаглифного стерео будет SBS.
Кодирование видео и отправка на смартфон
В современных видеокартах уже встроены аппаратные кодировщики видео, в том числе в NVIDIA. Они почти не нагружают центральный процессор т.к. используют встроенный в видеокарту аппаратный кодировщик видео.Есть такое и для NVIDIA (Shadow Play). В нашем случае надо просто поставить на смартфон программу Moonlight https://moonlight-stream.com.
Программа Moonlight при запуске спросит к какому компьютеру подключиться. Укажите IP-адрес вашего ПК и она сама сможет подключаться к ПК и показывать экран с него с низкой задержкой.
Фактически программа получает видео с ПК и больше ничего не умеет, но больше и не надо, т.к. управлять мы собираемся с самого ПК.
Если все сделано правильно, на смартфоне мы увидим SBS видео как клон экрана монитора. Остается только вставить смартфон в очки.
Тестирование
Проверка была выполнена в F.E.A.R. 3 (не поддерживает SBS) и в DOOM 3 BFG Edition (нативно поддерживает SBS).
В F.E.A.R. 3 все в принципе работает кроме оружия. Почему-то в правом кадре оно справа, а в левом слево (а должно быть чуть смещенным справа) из-за чего в момент прицеливания оружие раздваивается и прицелиться не удается. В остальном все нормально.
В DOOM 3 BFG стерео работает хорошо, но "укачивает" и иногда передача по Wi-Fi начинает подлагивать.
В F.E.A.R. 3 все в принципе работает кроме оружия. Почему-то в правом кадре оно справа, а в левом слево (а должно быть чуть смещенным справа) из-за чего в момент прицеливания оружие раздваивается и прицелиться не удается. В остальном все нормально.
В DOOM 3 BFG стерео работает хорошо, но "укачивает" и иногда передача по Wi-Fi начинает подлагивать.
Заключение
Задача технически выполнена, можно играть сидя за ПК в игры в режиме виртуальной реальности на смартфоне.Конечно, аналогичным образом можно запустить с ПК 3D-видео и отправиться на диван смотреть его в очках.
Подход в целом достаточно универсален, но надо иметь в виду, что возможны проблемы как с низкой скоростью работы Wi-Fi, так и с неполной совместимостью игр с 3Dmigoto (в частности, игра должна быть на DirectX). Ну и расстройство вестибулярного аппарата.
Если вы хотите смотреть только видео в SBS, запущенное с ПК, то 3Dmigoto и NVIDIA 3D Vision вам не нужны, просто установите Moonlight на смартфон.
Комментарии
Отправить комментарий