跳转至内容

虚拟现实

来自 ArchWiki

本文章或章节需要扩充。

原因: 正在重写:本文档中的许多内容已过时(请在 Talk:Virtual reality 中讨论)

虚拟现实是通过使用各种外围设备、头戴式显示器或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 是一个图形化应用程序,它作为一个协调器,只需点击几下即可启动完整的MonadoWiVRn设置。Envision尝试构建一个可用的运行时,提供一个原生的OpenXR API和一个OpenVR API,由OpenCompositeXRizer提供,供客户端应用程序使用。

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

安装 VulkanSteam。如果使用NVIDIA驱动,您可能需要设置 VK_DRIVER_FILES 环境变量。32位软件包的必需依赖项是:lib32-gtk2AURlib32-libvalib32-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

  1. 创建Oculus开发者账户。
  2. 在Quest中启用开发者模式(例如,使用您的手机),并通过线缆连接您的Quest。
  3. 在Quest中按允许USB调试

有关更多信息,请参阅SideQuest网站

wlx-overlay-s

wlx-overlay-s 是一个轻量级的OpenXR/OpenVR叠加层,可以镜像和控制X11/Wayland桌面。如果使用wayvr功能编译,它也可以充当Wayland合成器。

作为 wlx-overlay-s-gitAUR 可用。

Stardust XR

Stardust XRGitHub)是一个模块化的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-qtAURprotonup-rsAUR 安装)或Proton-GE-RTSP。如果游戏通过Proton运行时出现问题,请参考该游戏的Linux/Wine兼容性信息、ProtonDB以及所使用的XR运行时和兼容性层的文档,以寻求可能的修复方案。

其他问题

由于Linux上VR的性质,各种问题非常普遍,而且由于可能出现的问题数量庞大,不可能在此一一列出。取而代之的是,请参考相关软件的文档、Linux VR Adventures Wiki,或Linux VR Adventures Discord,以获取您遇到的任何可能问题的帮助。