虚拟现实
虚拟现实是通过使用各种外围设备、头戴式显示器或CAVEs以及追踪器来模拟用户环境的过程。它不像在屏幕上显示静态视角那样,而是根据用户站立的位置,在头戴式或投影式屏幕上渲染您的视角,从而产生与您肉眼完全相同的效果。
最近发布或即将发布的一系列外围设备,使人人都能负担得起、极具沉浸感的虚拟现实。大多数这些外围设备都拥有完全或部分Linux支持,许多还有AUR软件包。
硬件兼容性
以下是当前支持的VR/XR设备及其支持软件的非详尽列表。
PCVR 头戴式显示器 (HMDs)
| 设备 | SteamVR | Monado |
|---|---|---|
| Valve Index | 是 | 是 |
| HTC Vive/Vive Pro | 是 | 是 |
| HTC Vive Pro Eye | 是(眼球追踪 WIP) | 是(眼球追踪 WIP) |
| HTC Vive Pro 2 | 是(需要自定义驱动和补丁) | 是(仅限AMD GPU,需要2个内核补丁:1 2) |
| Bigscreen Beyond | 是(仅限AMD GPU,需要内核补丁) | 是(仅限AMD GPU,需要内核补丁) |
| Pimax HMDs | 否(计划中) | WIP(可能与内核补丁一起工作) |
| WMR | 是(常见HMD,Monado SteamVR插件) | 是(6DoF控制器实验性) |
| Oculus Rift CV1 | 是(推荐OpenHMD) | 是(推荐OpenHMD) |
| Oculus Rift S | 是(Monado SteamVR插件) | 是(6DoF控制器实验性) |
此外,还有一个实验性的PC-PC流客户端用于WiVRn,它可能适用于上面由Monado支持的HMD。
独立式头戴式显示器 (HMDs)
| 设备 | SteamVR(通过ALVR) | WiVRn |
|---|---|---|
| Meta Quest/2/3/Pro | 是 | 是 |
| Pico 4 | 是 | 是 |
| Pico Neo 3 | 是 | 否(SDK已损坏) |
| HTC Vive Focus 3 | 是 | 是 |
| HTC Vive XR Elite | 是 | 是 |
| Lynx R1 | 是 | 是 |
| Apple Vision Pro | 是 | 否 |
追踪设备
| 设备 | SteamVR | Monado | WiVRn |
|---|---|---|---|
| Vive/Tundra 追踪器 | 是(原生或spacecal) | 是(原生或motoc) | 是(motoc) |
| SlimeVR 追踪器 | 是 | 仅OSC(合并请求) | 仅OSC(合并请求) |
| Project Babble | 是(oscavmgr) | 是(oscavmgr) | 是(oscavmgr) |
| Eyetrack VR | 是(oscavmgr) | 是(oscavmgr) | 是(oscavmgr) |
| Mercury 手部追踪 | 否 | 是(仅survive 驱动) | 否 |
| Lucid VR 手套 | ? | 是(仅survive 驱动) | 否 |
| 基于Kinect的FBT | 是 | 是(实验性) | WIP |
| Standable FBT | 否 | 否 | 否 |
支持的运行时和工具包
OpenXR
OpenXR 是一个开放的、免版税的标准,用于访问虚拟现实和增强现实平台及设备。它由Khronos Group维护,并被行业内大多数公司采用。大多数运行时都支持OpenXR。
Monado
Monado 是Collabora开发的一个开源OpenXR运行时。它正在积极开发中,旨在提供一个支持大多数头戴设备的通用运行时。当前进展可以在这里找到:https://monado.freedesktop.org/
使用 monadoAUR 安装。
Envision
Envision 是一个图形化应用程序,它作为一个协调器,只需点击几下即可启动完整的Monado或WiVRn设置。Envision尝试构建一个可用的运行时,提供一个原生的OpenXR API和一个OpenVR API,由OpenComposite或XRizer提供,供客户端应用程序使用。
WiVRn
WiVRn 是一个Monado的fork/wrapper,能够流式传输到独立式头戴设备。它目前支持大多数可用的基于Android的HMD,并且还支持PC到PC流的实验性支持。
使用 wivrn-serverAUR 安装服务器,并使用 wivrn-dashboardAUR 安装(可选)配置仪表板。您可以从GitHub releases下载预编译的Android客户端,或按照构建文档自行编译。
OpenVR / SteamVR
OpenVR 是Valve为创建VR开发开放API所做的努力。不幸的是,虽然API是开放的,但实际的默认实现(SteamVR)不是。SteamVR也提供OpenXR运行时。
SteamVR 注意事项
截至2025年1月,Linux上的SteamVR已知存在许多无法修复的问题,在Linux VR领域被许多人认为是废弃软件。如果您正在寻找Linux上VR的实际解决方案,请尽可能使用Monado或WiVRn。为了方便入门,请使用Envision,这是一个Monado的GUI。
设置 SteamVR
安装 Vulkan和Steam。如果使用NVIDIA驱动,您可能需要设置 VK_DRIVER_FILES 环境变量。32位软件包的必需依赖项是:lib32-gtk2AUR,lib32-libva,lib32-libvdpau。
在Steam中,从工具菜单安装SteamVR。
ALVR
ALVR 是一个SteamVR驱动程序,允许流式传输到Meta/Oculus Quest等独立式头戴设备。它可在 alvrAUR 软件包中找到。
OpenHMD
OpenHMD 目前未维护,除旧型HMD外,应视为已弃用。它旨在为沉浸式技术(如内置头部追踪的头戴式显示器)提供免费开源API和驱动程序。目标是在一个便携、跨平台的包中实现对尽可能多设备的兼容。
OpenHMD仅支持旧设备,如Oculus Rift、HTC Vive、Sony PSVR、Deepoon E2等,因此对于新设备不是必需的,也不应考虑。目前大部分HMD驱动工作都转向Monado。有一个fork专注于Oculus Rift CV1追踪,对于该特定头戴设备仍然推荐;否则请使用Monado。
SteamVR 支持
可以使用OpenHMD与SteamVR配合。要做到这一点,您需要安装 steamvr-openhmd-gitAUR,并在您的SteamVR驱动目录中创建一个指向OpenHMD SteamVR驱动的符号链接,例如
$ ln -s /usr/lib/steamvr/openhmd ~/.steam/steam/steamapps/common/SteamVR/drivers/openhmd
其他软件
vr-video-player
一个简单的工具,可以在您的VR头戴设备中查看任何X11窗口。vr-video-player支持立体/180°/360°视频/游戏。vr-video-player还允许您在VR中将普通视频/游戏/窗口视为平面屏幕。
作为 vr-video-playerAUR 可用。
xr-video-player
vr-video-player的一个fork,适用于OpenXR和Wayland,它使用pipewire捕获窗口或屏幕。
作为 xr-video-player-gitAUR 可用。
SideQuest
SideQuest可用于将APK文件安装到Oculus Quest。它作为 sidequest-binAUR 可用。
有关安装步骤,请参阅 https://sidequestvr.com/setup-howto
- 创建Oculus开发者账户。
- 在Quest中启用开发者模式(例如,使用您的手机),并通过线缆连接您的Quest。
- 在Quest中按允许USB调试。
有关更多信息,请参阅SideQuest网站。
wlx-overlay-s
wlx-overlay-s 是一个轻量级的OpenXR/OpenVR叠加层,可以镜像和控制X11/Wayland桌面。如果使用wayvr功能编译,它也可以充当Wayland合成器。
作为 wlx-overlay-s-gitAUR 可用。
Stardust XR
Stardust XR(GitHub)是一个模块化的XR显示服务器。它可以作为叠加层(并且可以与wlx-overlay-s并排运行)或作为独立应用程序运行。它可以使用 stardust-xr-flatlandAUR 提供Wayland合成器,使用 stardust-xr-protostarAUR 提供应用程序启动器,使用 stardust-xr-atmosphereAUR 提供天幕/家庭环境,以及使用其他软件包提供其他各种功能。使用 stardust-xr-serverAUR 安装服务器;您还可以安装 stardust-xr-telescopeAUR 以获取预制的启动脚本。
故障排除
SteamVR 支持
配置或启动错误
SteamVR/OpenVR会创建一个名为~/.openvr的目录,该目录在不同版本之间可能会被错误配置。删除该目录并完全卸载/重新安装SteamVR。
在某些配置下,它也可能在访问不同HMD时遇到问题。请参考HMD兼容性图表,查看您的头戴设备是否兼容。
游戏/程序
大多数XR应用程序通过Proton运行,没有重大问题。某些游戏或特定功能可能需要Proton-GE(可通过 protonup-qtAUR 或 protonup-rsAUR 安装)或Proton-GE-RTSP。如果游戏通过Proton运行时出现问题,请参考该游戏的Linux/Wine兼容性信息、ProtonDB以及所使用的XR运行时和兼容性层的文档,以寻求可能的修复方案。
其他问题
由于Linux上VR的性质,各种问题非常普遍,而且由于可能出现的问题数量庞大,不可能在此一一列出。取而代之的是,请参考相关软件的文档、Linux VR Adventures Wiki,或Linux VR Adventures Discord,以获取您遇到的任何可能问题的帮助。