VR 和 XR 开发
虚拟现实(VR)是一种身临其境的环境,让您感觉置身于虚拟或数字复制的真实3D世界中。
UNIGINE为VR应用程序开发提供内置功能。它使您能够通过单个API接口实现各种VR设备的逻辑,而无需使用额外的插件。
另请参阅#
- 关于如何在UNIGINE中开始开发VR项目的VR入门文章。
- UNIGINE实时3D引擎基础入门课程的 开发VR应用部分。
UNIGINE中的VR系统#
内置VR系统提供OpenVR和Varjo的集成。
OpenVR集成#
OpenVR是一个全面的VR SDK (API和运行时),允许访问来自不同供应商的VR硬件,而不需要应用程序具有他们所针对的硬件的特定知识。
因此,得益于 OpenVR 集成,UNIGINE 支持各种 VR 设备的 VR 开发,包括 Oculus Rift、HTC Vive 和其他 OpenVR 兼容设备。 下面给出了受支持设备的完整列表。
Varjo集成#
具有眼动追踪和混合现实功能的工业级耳机允许您创建VR和XR(eXtended Reality)应用程序。使用混合现实技术,您可以将耳机上的前置摄像头的真实世界视图与VR图像结合起来。
此外,通过Ultraleap集成插件,Varjo VR和XR耳机可以使用VR中的手部跟踪功能。它提供了手指保真度、双手性能、更高的跟踪鲁棒性以及许多其他改进。
下表列出了UNIGINE VR系统支持的Varjo 原生特性:
Varjo 特性 | VR 系统 |
---|---|
支持的图形API | DX11, DX12, Vulkan |
人眼的分辨率 | |
眼动追踪 | |
眼动追踪参数 | |
眼摄像头数据流 | |
混合现实(MR) | |
MR环境反射 | |
MR后处理着色器 | |
MR数据流 | |
色度键控 | |
Varjo 标记 | |
深度缓冲提交 | |
速度缓冲提交 | |
多应用支持 | |
多层支持 | |
遮挡蒙版 | |
实例化呈现 | |
注视点渲染 | |
SLI兼容 |
支持的平台#
UNIGINE可以为不同的VR平台开发VR应用程序。
眼睛虚拟现实#
使用UNIGINE VR系统,您可以通过集成OpenVR功能来实现Oculus头戴式显示器的项目。
为了正确工作,您需要安装 Oculus Rift PC Runtime。
对于性能分析,您可以使用 Oculus PerfHud工具。它显示性能摘要,包括应用程序的帧率和可用的未使用硬件性能、延迟时间、应用程序渲染时间、有关HMD版本的信息等。要将Oculus PerfHud与UNIGINE一起使用,请遵循Oculus文档中的说明。
VR Template提供仅与Oculus hmd兼容的Oculus Touch和Oculus Quest控制器的模型。
SteamVR#
OpenVR集成允许您为SteamVR平台开发项目。它不绑定到特定的硬件:这样的项目可以使用任何支持SteamVR的VR设备。
在针对 SteamVR 进行开发时,首先您应该下载并安装 Steam,然后启动 SteamVR。
对于性能分析,您可以使用SteamVR Frame Timing工具。
VR Template提供了以下与 SteamVR 兼容的控制器型号:HTC Vive, HTC Vive Pro和HTC Vive Cosmos。
混合现实开发#
由于有了Varjo集成,您可以实现与 Varjo HMD 一起运行的Mixed Reality应用程序。
要开发应用程序,需要安装Varjo Base和SteamVR。
混合现实管理是通过UNIGINE API的VRMixedReality 类执行的。
支持设备#
支持以下VR设备型号:
- 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输入系统提供对广泛的VR设备的访问:您可以管理来自 VR控制器, 头戴式显示器(HMD), 基站和跟踪器的输入。
有关VR设备类型及其示例的更多详细信息,请查看VR Input System上的文章。
VR Template 模板#
UNIGINE提供了一个VR Template 模板,用于方便地为VR创建自定义应用程序。它包含了一组流行的VR控制器的3D模型和基本机制的执行,如抓取和投掷物体,按下按钮,打开/关闭抽屉等等。
该模板是使用 Component System 创建的,因此您可以轻松地扩展其功能。
参考VR入门文章了解如何使用C++/C# VR项目开发的模板。
使用VR的基本工作流程#
与其他3D应用程序不同,开发VR应用程序更加复杂:您应该设置VR环境,添加交互元素,处理来自各种VR设备的用户输入,等等。
在UNIGINE中开发VR应用程序的一般流程如下:
设置VR开发的UNIGINE项目:
- 设置VR设备(如有必要,请查看供应商提供的说明)。
- 配置项目以使用适当的 VR 模式。 您可以通过 SDK 浏览器(对于 C++/C# 项目)或在 UnigineEditor(对于 C# 项目)中执行此操作,具体取决于运行应用程序的首选方法。
- 初始化VR
创建VR环境:
- 通过使用第三方3D建模和关卡设计工具以及UnigineEditor为您的VR项目创建3D环境。
- 用动画、声音、视频和其他交互元素扩展VR环境。
让VR环境更具互动性:
- 实现组件以扩展环境中对象的功能,并处理用户输入。
- 使用 UNIGINE的VR模板(可用于C++和C# API),它提供了一组基本的VR组件,并允许用户在环境中移动和与对象交互。
- 调试和配置您的VR应用程序。使用VR平台特定的和UNIGINE内置的分析工具来提高性能。
- 构建和部署您的VR应用程序。