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 offers built-in functionality for development of Virtual Reality and Mixed Reality applications. It enables you to implement logic for various VR devices through a single API interface without using additional plugins.UNIGINE предлагает встроенный функционал для разработки приложений виртуальной реальности. Он позволяет вам реализовывать логику для различных устройств виртуальной реальности через единый API-интерфейс без использования дополнительных плагинов.

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

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

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

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

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

OpenVR is a comprehensive VR SDK (API and runtime) that allows access to VR hardware from various vendors without requiring that applications have specific knowledge of the hardware they are targeting.OpenVR — это комплексный VR SDK (API и среда выполнения), который обеспечивает доступ к оборудованию виртуальной реальности различных производителей, не требуя от приложений специальных знаний об оборудовании, на которое они нацелены.

So, thanks to OpenVR integration, UNIGINE supports VR development for a wide range of VR devices, including the Oculus Rift, HTC Vive, and other OpenVR-compatible devices. The full list of supported devices is given below.Таким образом, благодаря интеграции с OpenVR UNIGINE поддерживает разработку виртуальной реальности для широкого спектра устройств виртуальной реальности, включая Oculus Rift, HTC Vive и другие устройства, совместимые с OpenVR. Полный список поддерживаемых устройств приведен ниже.

Varjo Integration and Supported Features
Интеграция с Varjo#

Изображение предоставлено Varjo.

Varjo's industrial-grade headsets with eye-tracking and mixed reality capabilities allow you to create VR and MR applications. With Mixed Reality, you can combine the real-world view from front-facing cameras mounted on the headset with the VR image.Гарнитуры промышленного класса Varjo с функцией слежения за движением глаз и возможностями смешанной реальности позволяют создавать приложения VR и XR (eXtended Reality). С помощью Mixed Reality можно комбинировать изображение реального мира с фронтальных камер, установленных на гарнитуре, с изображением виртуальной реальности.

Moreover, there is hand-tracking in VR available for Varjo VR and XR headsets through the Ultraleap integration plugin. It provides finger fidelity, two-hand performance, higher tracking robustness, and a lot of other improvements.Более того, для гарнитур Varjo VR и XR доступно отслеживание рук в виртуальной реальности с помощью плагина интеграции Ultraleap. Это обеспечивает точность работы пальцами, работу двумя руками, более высокую надежность отслеживания и множество других улучшений.

The following table lists Varjo native features that are supported by UNIGINE VR system:В следующей таблице перечислены встроенные функции 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.

For performance profiling, you can use the SteamVR Frame Timing tool.Для профилирования производительности вы можете использовать инструмент SteamVR Frame Timing.

VR Template provides the models of the following SteamVR-compatible controllers: HTC Vive, HTC Vive Pro, and HTC Vive Cosmos.VR Template предоставляет модели следующих контроллеров, совместимых со SteamVR: HTC Vive, HTC Vive Pro и HTC Vive Cosmos.

Mixed Reality Development
Разработка приложений смешанной реальности#

Thanks to Varjo integration, you can implement Mixed Reality applications to be run with Varjo HMDs.Благодаря интеграции Varjo вы можете реализовать приложения Mixed Reality для запуска с помощью Varjo HMDs.

To develop an application, you need to install Varjo Base and SteamVR.Чтобы разработать приложение, вам необходимо установить Varjo Base и SteamVR.

Mixed Reality management is performed via the VRMixedReality and VRMarkerObject classes of UNIGINE API.Управление смешанной реальностью осуществляется с помощью класса VRMixedReality UNIGINE API.

Supported Devices
Поддерживаемые устройства#

The following VR device models are supported:Поддерживаются следующие модели устройств виртуальной реальности:

  • 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

Supported Graphics APIs
Поддерживаемые графические API#

The following graphics APIs are supported out of the box:Следующие графические API поддерживаются "из коробки":

  • DirectX 11
  • DirectX 12
  • Vulkan
Примечание
Для поддержки OpenGL API вам придется использовать устаревшие плагины VR.

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

By default, VR is not initialized. To run the engine with VR, you need to specify the -vr_app command-line option on the application start-up.По умолчанию VR не инициализирован. Чтобы запустить движок с помощью VR, вам необходимо указать параметр командной строки -vr_app при запуске приложения.

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

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

UNIGINE VR input system provides access to a wide range of VR devices: you can manage input from VR controllers, head-mounted displays (HMDs), base stations, and trackers.Система ввода UNIGINE VR обеспечивает доступ к широкому спектру устройств виртуальной реальности: вы можете управлять вводом с контроллеров виртуальной реальности, дисплеев на головах (HMD), базовых станций и трекеров.

For more details on types of VR devices and their examples, check the article on VR Input System.Для получения более подробной информации о типах устройств виртуальной реальности и их примерах ознакомьтесь со статьей на VR Input System.

VR Template
Шаблон VR Template#

UNIGINE provides a VR Template that is used to facilitate the creation of a custom application for VR. It contains a set of 3D models of popular VR controllers and the implementation of basic mechanics such as grabbing and throwing objects, pressing buttons, opening/closing drawers, and a lot more.UNIGINE предоставляет шаблон VR Template, который упрощает создание пользовательского приложения виртуальной реальности. Он содержит набор 3D-моделей популярных контроллеров виртуальной реальности и реализацию базовых механик, таких как захват и бросание предметов, нажатие кнопок, открывание/закрывание ящиков и многое другое.

The template is created using the Component System, so you can easily extend its functionality.Шаблон создан с использованием Компонентной системы, поэтому вы можете легко расширить его функциональность.

Refer to the Getting Started with VR section to learn how to use the template for C++/C# VR project development.Обратитесь к статье Начало работы с VR, чтобы узнать, как использовать шаблон для разработки проекта C++/C# VR.

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

Unlike other 3D applications, developing a VR application is more complex: you should set up a VR environment, add interactive elements, process user input from various VR devices, and so on.В отличие от других 3D-приложений, разработка приложения VR более сложна: вы должны настроить среду виртуальной реальности, добавить интерактивные элементы, обработать пользовательский ввод с различных устройств виртуальной реальности и так далее.

The general workflow of the VR application development in UNIGINE is the following:Общий рабочий процесс разработки VR-приложений в UNIGINE выглядит следующим образом:

  1. Set up your UNIGINE project for VR development:Создайте свой проект UNIGINE для разработки виртуальной реальности:

    1. Set up a VR device (check the instructions provided by the vendor, if necessary).Настройте устройство виртуальной реальности (при необходимости ознакомьтесь с инструкциями, предоставленными поставщиком).
    2. Configure the project to use the appropriate VR mode. You can perform it via SDK Browser for C++/C# projects or in UnigineEditor for C# projects, depending on your preferred method of running your application.Настройте проект на использование соответствующего режима виртуальной реальности. Вы можете выполнить это через SDK Browser для проектов C++/C#или в UnigineEditor для редактирования C#, в зависимости от предлагаемого вами метода загрузки вашего приложения.
    3. Initialize VR. Инициализируйте VR.
  2. Create the VR environment:Создайте виртуальную среду:

    • Create a 3D environment for your VR project by using 3rd-party 3D modeling and level design tools and UnigineEditor.Создайте 3D-среду для своего VR-проекта, используя сторонние инструменты 3D-моделирования и проектирования уровней, а также UnigineEditor.
    • Extend the VR environment with animations, sounds, videos, and other interactive elements.Расширьте виртуальную среду с помощью анимации, звуков, видео и других интерактивных элементов.
  3. Make the VR environment more interactive:Сделайте виртуальную среду более интерактивной:

    • Implement components to extend the functionality of objects in the environment and process user input.Реализуйте компоненты для расширения функциональности объектов в среде и обработки пользовательского ввода.
    • Use UNIGINE's VR Template (available for C++ and C# APIs) that offers a basic set of VR components and allows users to move around and interact with objects in the environment.Используйте Шаблон виртуальной реальности UNIGINE (доступен для C++ и C# API), который предлагает базовый набор компонентов виртуальной реальности и позволяет пользователям перемещаться и взаимодействовать с объектами в окружающей среде.
  4. Debug and profile your VR application. Use the VR platform-specific and UNIGINE built-in profiling tools to improve performance.Отладьте и профилируйте свое VR-приложение. Используйте специальные инструменты профилирования для платформы VR и UNIGINE, встроенные в UNIGINE, для повышения производительности.
  5. Build and deploy your VR application.Создайте и разверните свое приложение виртуальной реальности.
Последнее обновление: 16.08.2024
Build: ()