Разработка приложений VR и XR
Виртуальная реальность (VR) — это иммерсивная среда, которая позволяет вам почувствовать себя внутри виртуального или воспроизведенного в цифровом виде реального трёхмерного мира.
UNIGINE предлагает встроенный функционал для разработки приложений виртуальной реальности. Он позволяет вам реализовывать логику для различных устройств виртуальной реальности через единый API-интерфейс без использования дополнительных плагинов.
Смотрите также#
- Статья Начало работы с VR для начала разработки VR-проектов в UNIGINE.
- Раздел базового вводного курса по 3D-движку UNIGINE в реальном времени, посвященный Разработке приложений виртуальной реальности.
Система виртуальной реальности в UNIGINE#
Встроенная система виртуальной реальности обеспечивает интеграцию OpenVR и Varjo.
Интеграция с OpenVR#
OpenVR — это комплексный VR SDK (API и среда выполнения), который обеспечивает доступ к оборудованию виртуальной реальности различных производителей, не требуя от приложений специальных знаний об оборудовании, на которое они нацелены.
Таким образом, благодаря интеграции с OpenVR UNIGINE поддерживает разработку виртуальной реальности для широкого спектра устройств виртуальной реальности, включая Oculus Rift, HTC Vive и другие устройства, совместимые с OpenVR. Полный список поддерживаемых устройств приведен ниже.
Интеграция с Varjo#
Гарнитуры промышленного класса Varjo с функцией слежения за движением глаз и возможностями смешанной реальности позволяют создавать приложения VR и XR (eXtended Reality). С помощью Mixed Reality можно комбинировать изображение реального мира с фронтальных камер, установленных на гарнитуре, с изображением виртуальной реальности.
Более того, для гарнитур Varjo VR и XR доступно отслеживание рук в виртуальной реальности с помощью плагина интеграции Ultraleap. Это обеспечивает точность работы пальцами, работу двумя руками, более высокую надежность отслеживания и множество других улучшений.
В следующей таблице перечислены встроенные функции Varjo, которые поддерживаются системой UNIGINE VR:
Функции Varjo | Система VR |
---|---|
Поддерживаемые графические API | DX11, DX12, Vulkan |
Разрешение человеческого глаза | |
Отслеживание движения глаз | |
Параметры отслеживания взгляда | |
Поток данных камеры отслеживания взгляда | |
Смешанная реальность (MR) | |
Отражения среды в MR | |
Шейдеры для постобработки MR | |
Поток данных MR | |
Хромакейинг | |
Маркеры Varjo | |
Представление буфера глубины | |
Представление буфера скорости | |
Поддержка нескольких приложений | |
Поддержка нескольких слоев | |
Маска окклюзии | |
Инстанцированный рендеринг | |
Фовеальный рендеринг | |
Совместимость с SLI |
Поддерживаемые платформы#
UNIGINE позволяет разрабатывать VR-приложения для различных платформ виртуальной реальности.
Oculus VR#
С помощью системы UNIGINE VR вы можете реализовывать проекты для Oculus HMD благодаря интеграции функциональности OpenVR.
Для корректной работы вам необходимо установить Oculus Rift PC Runtime.
Для профилирования производительности вы можете использовать инструмент Oculus PerfHUD. Он отображает сводную информацию о производительности, включая частоту кадров приложения и доступную неиспользуемую аппаратную производительность, время задержки, время рендеринга приложения, информацию о версии HMD и другое. Чтобы использовать Oculus PerfHUD с UNIGINE, следуйте инструкциям в документации Oculus.
VR Template предоставляет модели контроллеров Oculus Touch и Oculus Quest, совместимые только с Oculus HMDs.
SteamVR#
интеграция с OpenVR позволяет разрабатывать проекты для платформы SteamVR. Она не привязана к определенному оборудованию: такие проекты можно использовать с любыми устройствами виртуальной реальности, поддерживающими SteamVR.
При разработке для SteamVR сначала вам следует загрузить и установить Steam, а затем запустить SteamVR.
Для профилирования производительности вы можете использовать инструмент SteamVR Frame Timing.
VR Template предоставляет модели следующих контроллеров, совместимых со SteamVR: HTC Vive, HTC Vive Pro и HTC Vive Cosmos.
Разработка приложений смешанной реальности#
Благодаря интеграции Varjo вы можете реализовать приложения Mixed Reality для запуска с помощью Varjo HMDs.
Чтобы разработать приложение, вам необходимо установить Varjo Base и SteamVR.
Управление смешанной реальностью осуществляется с помощью класса VRMixedReality UNIGINE API.
Поддерживаемые устройства#
Поддерживаются следующие модели устройств виртуальной реальности:
- Oculus Rift / Rift S / Quest / Quest 2 (с кабельным Oculus Link / беспроводным Oculus Link)
- HTC Vive / Vive Pr / Focus / Cosmos
- Varjo VR-1 / VR-2 / VR-3 / XR-3 (с расширенной поддержкой смешанной реальности)
- Совместимые с Windows Mixed Reality (WMR)
- Совместимые с OpenVR
Поддерживаемые графические API#
Следующие графические API поддерживаются "из коробки":
- DirectX 11
- DirectX 12
- Vulkan
Инициализация#
По умолчанию VR не инициализирован. Чтобы запустить движок с помощью VR, вам необходимо указать параметр командной строки -vr_app при запуске приложения.
- Для OpenVR:
-vr_app openvr
- Для Varjo:
-vr_app varjo
Система ввода VR#
Система ввода UNIGINE VR обеспечивает доступ к широкому спектру устройств виртуальной реальности: вы можете управлять вводом с контроллеров виртуальной реальности, дисплеев на головах (HMD), базовых станций и трекеров.
Для получения более подробной информации о типах устройств виртуальной реальности и их примерах ознакомьтесь со статьей на VR Input System.
Шаблон VR Template#
UNIGINE предоставляет шаблон VR Template, который упрощает создание пользовательского приложения виртуальной реальности. Он содержит набор 3D-моделей популярных контроллеров виртуальной реальности и реализацию базовых механик, таких как захват и бросание предметов, нажатие кнопок, открывание/закрывание ящиков и многое другое.
Шаблон создан с использованием Компонентной системы, поэтому вы можете легко расширить его функциональность.
Обратитесь к статье Начало работы с VR, чтобы узнать, как использовать шаблон для разработки проекта C++/C# VR.
Базовый рабочий процесс по использованию виртуальной реальности#
В отличие от других 3D-приложений, разработка приложения VR более сложна: вы должны настроить среду виртуальной реальности, добавить интерактивные элементы, обработать пользовательский ввод с различных устройств виртуальной реальности и так далее.
Общий рабочий процесс разработки VR-приложений в UNIGINE выглядит следующим образом:
Создайте свой проект UNIGINE для разработки виртуальной реальности:
- Настройте устройство виртуальной реальности (при необходимости ознакомьтесь с инструкциями, предоставленными поставщиком).
- Настройте проект на использование соответствующего режима виртуальной реальности. Вы можете выполнить это через SDK Browser для проектов C++/C#или в UnigineEditor для редактирования C#, в зависимости от предлагаемого вами метода загрузки вашего приложения.
- Инициализируйте VR.
Создайте виртуальную среду:
- Создайте 3D-среду для своего VR-проекта, используя сторонние инструменты 3D-моделирования и проектирования уровней, а также UnigineEditor.
- Расширьте виртуальную среду с помощью анимации, звуков, видео и других интерактивных элементов.
Сделайте виртуальную среду более интерактивной:
- Реализуйте компоненты для расширения функциональности объектов в среде и обработки пользовательского ввода.
- Используйте Шаблон виртуальной реальности UNIGINE (доступен для C++ и C# API), который предлагает базовый набор компонентов виртуальной реальности и позволяет пользователям перемещаться и взаимодействовать с объектами в окружающей среде.
- Отладьте и профилируйте свое VR-приложение. Используйте специальные инструменты профилирования для платформы VR и UNIGINE, встроенные в UNIGINE, для повышения производительности.
- Создайте и разверните свое приложение виртуальной реальности.