This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Разработка приложений VR и XR

Виртуальная реальность (VR) — это иммерсивная среда, которая позволяет вам почувствовать себя внутри виртуального или воспроизведенного в цифровом виде реального трёхмерного мира.

UNIGINE предлагает встроенный функционал для разработки приложений виртуальной реальности. Он позволяет вам реализовывать логику для различных устройств виртуальной реальности через единый API-интерфейс без использования дополнительных плагинов.

Внимание
Плагины виртуальной реальности (OpenVR, Varjo, Oculus), реализующие подобный функционал, считаются устаревшими и будут удалены в следующем релизе SDK.

Смотрите также#

Система виртуальной реальности в UNIGINE#

Встроенная система виртуальной реальности обеспечивает интеграцию OpenVR и Varjo.

Интеграция с OpenVR#

OpenVR — это комплексный VR SDK (API и среда выполнения), который обеспечивает доступ к оборудованию виртуальной реальности различных производителей, не требуя от приложений специальных знаний об оборудовании, на которое они нацелены.

Таким образом, благодаря интеграции с OpenVR UNIGINE поддерживает разработку виртуальной реальности для широкого спектра устройств виртуальной реальности, включая Oculus Rift, HTC Vive и другие устройства, совместимые с OpenVR. Полный список поддерживаемых устройств приведен ниже.

Интеграция с Varjo#

Изображение предоставлено 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.

Примечание
Если вы установите один из HTC Vive HMD, SteamVR будет установлен автоматически при установке HMD.

Для профилирования производительности вы можете использовать инструмент 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
Примечание
Для поддержки OpenGL API вам придется использовать устаревшие плагины VR.

Инициализация#

По умолчанию VR не инициализирован. Чтобы запустить движок с помощью VR, вам необходимо указать параметр командной строки -vr_app при запуске приложения.

  • Для OpenVR:
    Shell-команды
    -vr_app openvr
  • Для Varjo:
    Shell-команды
    -vr_app varjo
Примечание
Вы не можете запустить плагины VR (OpenVR, Varjo, Oculus) при инициализации встроенного VR, поскольку это переопределяет функциональность плагина. Если вы попытаетесь добавить плагин VR после инициализации VR, вы получите сообщение об ошибке.

Система ввода VR#

Система ввода UNIGINE VR обеспечивает доступ к широкому спектру устройств виртуальной реальности: вы можете управлять вводом с контроллеров виртуальной реальности, дисплеев на головах (HMD), базовых станций и трекеров.

Для получения более подробной информации о типах устройств виртуальной реальности и их примерах ознакомьтесь со статьей на VR Input System.

Шаблон VR Template#

UNIGINE предоставляет шаблон VR Template, который упрощает создание пользовательского приложения виртуальной реальности. Он содержит набор 3D-моделей популярных контроллеров виртуальной реальности и реализацию базовых механик, таких как захват и бросание предметов, нажатие кнопок, открывание/закрывание ящиков и многое другое.

Шаблон создан с использованием Компонентной системы, поэтому вы можете легко расширить его функциональность.

Обратитесь к статье Начало работы с VR, чтобы узнать, как использовать шаблон для разработки проекта C++/C# VR.

Базовый рабочий процесс по использованию виртуальной реальности#

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

Общий рабочий процесс разработки VR-приложений в UNIGINE выглядит следующим образом:

  1. Создайте свой проект UNIGINE для разработки виртуальной реальности:

    1. Настройте устройство виртуальной реальности (при необходимости ознакомьтесь с инструкциями, предоставленными поставщиком).
    2. Настройте проект на использование соответствующего режима виртуальной реальности. Вы можете выполнить это через SDK Browser для проектов C++/C#или в UnigineEditor для редактирования C#, в зависимости от предлагаемого вами метода загрузки вашего приложения.
    3. Инициализируйте VR.
  2. Создайте виртуальную среду:

    • Создайте 3D-среду для своего VR-проекта, используя сторонние инструменты 3D-моделирования и проектирования уровней, а также UnigineEditor.
    • Расширьте виртуальную среду с помощью анимации, звуков, видео и других интерактивных элементов.
  3. Сделайте виртуальную среду более интерактивной:

    • Реализуйте компоненты для расширения функциональности объектов в среде и обработки пользовательского ввода.
    • Используйте Шаблон виртуальной реальности UNIGINE (доступен для C++ и C# API), который предлагает базовый набор компонентов виртуальной реальности и позволяет пользователям перемещаться и взаимодействовать с объектами в окружающей среде.
  4. Отладьте и профилируйте свое VR-приложение. Используйте специальные инструменты профилирования для платформы VR и UNIGINE, встроенные в UNIGINE, для повышения производительности.
  5. Создайте и разверните свое приложение виртуальной реальности.
Последнее обновление: 16.08.2024
Build: ()