Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
XR 术语
本页面定义了诸如 XR, VR, 和 AR 等术语在 Godot 引擎中具体是如何使用的。
这些术语在整个行业内并不总是被统一使用。而在 Godot 中,我们采用了清晰且切合实际的定义,以避免产生歧义,并更好地反映这些技术在底层究竟是如何实际实现的。
XR(扩展现实)
XR 是一个总称(或者叫‘伞状术语’),它涵盖了 Godot 引擎所支持的所有扩展现实技术。
在实际应用中,XR 指的是通过 XRServer 及相关 API 暴露出来的完整系统。这个系统将不同平台之间的差异进行了抽象封装,为我们构建 XR 应用提供了一个统一的方式。
XR 包括:
虚拟现实(VR)
增强现实(AR)
从开发的角度来看,XR 是开发完全虚拟的体验,以及结合虚拟与现实元素的体验的统一入口。
VR(虚拟现实)
虚拟现实(VR) 指的是完全 沉浸式 的体验,在这种体验中,用户会被置身于一个完全虚拟的环境里。
在使用 VR 时,用户是看不到现实世界的。相反,他们看到的一切都是由应用程序实时渲染出来的。同时,系统会追踪用户的动作,并将其同步映射到虚拟的摄像机和控制器上。
在 Godot 中,VR 通常包含以下内容:
头戴式显示器(HMD)
完全虚拟的 3D 场景
头部和手柄的 6DOF(六自由度)追踪
这是 Godot 中最常见的 XR 使用方式。想要开始上手,请查看:Setting up XR 。
备注
即使在 VR 应用中,只要头显设备支持,也可以使用透视(passthrough)功能。
在这种情况下,透视功能通常用于显示特定的现实世界元素,比如键盘、鼠标或其他外设,而体验的其余部分则依然保持完全虚拟。
这是一种混合使用场景,它与增强现实(AR)有所不同。因为在这里,透视功能并不是用来将虚拟内容放置到现实世界中,而是为了在 VR 体验中有选择性地展示现实世界的某些部分。
AR(增强现实)
增强现实(AR) 指的是将虚拟内容叠加在现实世界之上的体验。
用户依然能看到他们真实的物理环境,而虚拟物体则会被渲染得仿佛融入了那个环境之中。
在 Godot 中,AR(增强现实)被当作一个统一的概念来处理,而不会去区分具体使用了哪种类型的设备。这涵盖了使用摄像头透视(camera passthrough)技术的 XR 头显、带有显示屏的透视眼镜(see-through glasses),以及像手机和平板电脑这样的手持设备。
对于支持 OpenXR 或 WebXR 等标准的 XR 设备和 AR 眼镜,AR 功能可以通过 XR 系统直接调用。在这种情况下,开发好的应用程序几乎不需要做任何改动,就能在不同的设备上流畅运行。VR 头显上的透视(Passthrough)功能就是一个典型的例子,它本质上只是在这类设备上实现 AR 能力的一种技术手段罢了。
在 Godot 引擎之外,这类体验有时会被称为 "混合现实(MR)" 。但在 Godot 的官方文档中,为了避免产生歧义,统一将其归类为增强现实(AR)。至于透视(Passthrough)技术,则仅仅被视为一种具体的实现细节,而不会被单独划分为一个独立的类别。
关于使用 XR 系统来实现 AR 的具体示例,请参见:AR passthrough。
备注
像手机和平板电脑这类手持设备,目前还不支持 OpenXR。
相反,AR 功能是通过各家的专有 API 来提供的,并且需要使用特定平台的插件才能实现:
这就导致了针对不同平台的实现方案,并且这些方案无法做到完全通用(可移植)。
OpenXR 其实是完全有能力支持手持设备(如手机)上的 AR 功能的。如果各大平台厂商都能采纳它,AR 应用就能通过一套共享的代码库,同时在手机、头显和眼镜上流畅运行了。