Разработка приложений 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-интерфейс без использования дополнительных плагинов.
See AlsoСмотрите также#
- The article on Getting Started with VR to start developing VR projects in UNIGINE.Статья Начало работы с VR для начала разработки VR-проектов в UNIGINE.
- The section on Developing VR Applications of the Basic Introductory Course on UNIGINE real-time 3D engine.Раздел базового вводного курса по 3D-движку UNIGINE в реальном времени, посвященный Разработке приложений виртуальной реальности.
VR System in UNIGINEСистема виртуальной реальности в UNIGINE#
The built-in VR system provides integration of OpenVR and Varjo.Встроенная система виртуальной реальности обеспечивает интеграцию 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'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 |
Supported PlatformsПоддерживаемые платформы#
UNIGINE enables development of VR applications for diffent VR platforms.UNIGINE позволяет разрабатывать VR-приложения для различных платформ виртуальной реальности.
Oculus VROculus VR#
With UNIGINE VR system, you can implement projects for Oculus HMDs through the integration of OpenVR functionality.С помощью системы UNIGINE VR вы можете реализовывать проекты для Oculus HMD благодаря интеграции функциональности OpenVR.
For the correct work, you need to install Oculus Rift PC Runtime.Для корректной работы вам необходимо установить Oculus Rift PC Runtime.
For performance profiling, you can use the Oculus PerfHud tool. It displays performance summary, including frame rate of the application and the unused hardware performance available, latency timing, application render timing, information about the HMD version, and other. To use Oculus PerfHud with UNIGINE, follow the instructions in Oculus documentation.Для профилирования производительности вы можете использовать инструмент Oculus PerfHUD. Он отображает сводную информацию о производительности, включая частоту кадров приложения и доступную неиспользуемую аппаратную производительность, время задержки, время рендеринга приложения, информацию о версии HMD и другое. Чтобы использовать Oculus PerfHUD с UNIGINE, следуйте инструкциям в документации Oculus.
VR Template provides the models of the Oculus Touch and Oculus Quest controllers that are compatible with Oculus HMDs only.VR Template предоставляет модели контроллеров Oculus Touch и Oculus Quest, совместимые только с Oculus HMDs.
SteamVRSteamVR#
OpenVR integration allows you to develop projects for the SteamVR platform. It is not tied to a particular hardware: such projects can be used with any VR devices that support SteamVR.интеграция с OpenVR позволяет разрабатывать проекты для платформы SteamVR. Она не привязана к определенному оборудованию: такие проекты можно использовать с любыми устройствами виртуальной реальности, поддерживающими SteamVR.
When developing for SteamVR, first you should download and install Steam and then launch SteamVR.При разработке для SteamVR сначала вам следует загрузить и установить Steam, а затем запустить SteamVR.
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
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:
-vr_app openvr
- Для Varjo:
-vr_app varjo
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 выглядит следующим образом:
Set up your UNIGINE project for VR development:Создайте свой проект UNIGINE для разработки виртуальной реальности:
- Set up a VR device (check the instructions provided by the vendor, if necessary).Настройте устройство виртуальной реальности (при необходимости ознакомьтесь с инструкциями, предоставленными поставщиком).
- 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#, в зависимости от предлагаемого вами метода загрузки вашего приложения.
- Initialize VR. Инициализируйте VR.
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.Расширьте виртуальную среду с помощью анимации, звуков, видео и других интерактивных элементов.
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), который предлагает базовый набор компонентов виртуальной реальности и позволяет пользователям перемещаться и взаимодействовать с объектами в окружающей среде.
- Debug and profile your VR application. Use the VR platform-specific and UNIGINE built-in profiling tools to improve performance.Отладьте и профилируйте свое VR-приложение. Используйте специальные инструменты профилирования для платформы VR и UNIGINE, встроенные в UNIGINE, для повышения производительности.
- Build and deploy your VR application.Создайте и разверните свое приложение виртуальной реальности.