Скачать можно тут: https://github.com/optozorax/portal-vr-compositor/releases/tag/1 (файл
portal-vr-windows-x64.zip)Работает к сожалению только для Windows. Запускаете START-PORTAL-VR.bat и у вас показывается "виртуальный экран", на котором видно только окно Portal Explorer, оно полностью дублирует как это окно выглядит на вашем основном мониторе, можете управлять им мышкой и клавиатурой, можете его перемещать, изменять размер, максимизировать. Управление через контроллеры отсутствует.
Рендерится оно в стерео-формате, как 3D кино, и ваше положение головы не учитывается. Сделал я это чтобы для следующего видео отлаживать как анимации выглядят в VR шлеме. Да и вообще чтобы поиграться и посмотреть на свои порталы в 3D. Кто помнит, я уже давно сделал стерео-рендеринг в Portal Explorer (https://t.me/optozorax_dev/858), но тогда без VR приложения.
А теперь почему я так сделал и в чём моя идея. Моя программа изначально заточена под мышь и клавиатуру. А в VR принято всё управление делать на контроллеры, и я этого не хотел, я хотел лишь минимальную версию 3D. Поэтому подумал что будет проще всего сделать такое управление чтобы выглядело как будто я смотрю на 3D монитор, который умеет показывать разные картинки для правого и левого глаз, которым так же можно управлять мышью и клавиатурой.
Как выяснилось, не существует такого API, чтобы можно было рисовать две разные картинки под два разных глаза, и это работало одновременно для реальных 3D мониторов, и для виртуальных десктопов в VR шлеме. Так же не существует такого API чтобы в VR захватывать не всю зону рисования, а нарисовать только своё окно где-то висящим. Поэтому пришлось писать своё. Я сделал минимальную версию, где просто имитируется виртуальный экран, и на нём показывается окно Portal Explorer где оно расположено на реальном экране, и им можно управлять мышью.
Я не стал делать чтобы остальная часть рабочего стола рисовалась, ибо это уже переусложнение, и моя цель не в том чтобы сделать свой композитор, а только в том чтобы показать Portal Explorer.
Пока что это приложение только тест и референс для будущих усилий по полноценной поддержке VR в OptoLab, поэтому я не даже не смотрел на код, только отлаживал чтобы работало корректно.
Надеюсь в будущем появится хороший API для этого и все программы будут не только поддерживать 3D мониторы, но ещё и у нас появится полноценная VR операционная система, где каждое окно можно расположить в любом месте в пространстве, и каждое окно сможет рисоваться в 3D.
Если у вас есть VR шлем, то пишите ваш фидбэк в комментах!

