最近 Collabora 推出了 wxrd 复合服务器, 基于Wayland协议实现,旨在形成桌面 基于 XNUMXD 虚拟现实环境中的 xrdesktop 组件。
作为基础,使用了 Sway 用户环境的开发人员开发的 wlroots 库和设计用于虚拟现实系统的 wxrc 复合服务器。
与最初在 xrdesktop 中提出的解决方案不同, 世界末日 提供专门的复合服务器 对于虚拟现实环境, 而不是调整窗口和皮肤管理器 虚拟现实系统的现有桌面(xrdesktop 项目为 kwin 和 GNOME Shell 提供了单独的补丁,这需要针对这些组件的每个新版本进行调整)。
使用 wxrd,您不仅可以镜像现有二维桌面的内容,同时在普通显示器上显示,还可以单独处理专门为 XNUMXD 桌面启动的窗口(即不提供从 VR 头盔到当前系统中使用的桌面的访问)并为虚拟现实头盔形成一个单独的环境)。
与同类项目不同 例如 Simula VR、Stardust、Motorcar 和 Safespaces,复合服务器 wxrd 的构建考虑了最小的依赖关系和资源消耗. Wxrd 不仅允许使用基于 Wayland 协议的应用程序,还可以使用 xwayland DDX 服务器运行 X11 应用程序。
由于用于虚拟键盘的 Wayland 协议的扩展正在开发中, 数据输入到 wxrd 通过传输所有Unicode字符的键盘仿真系统实现, 包括表情符号,来自 xrdesktop 中提供的虚拟键盘。
宽度 需要支持 Vulkan 图形 API 和 VK_EXT_image_drm_format_modifier 扩展的显卡, 与版本 21.1(包含在 Ubuntu 21.04 中)的 Mesa 兼容。 使用 Vulkan API 进行渲染需要 VK_EXT_physical_device_drm 扩展,它是在 Mesa 21.2 (Ubuntu 21.10) 中引入的。
使用单独的复合服务器的优点 对于虚拟现实系统,而不是与用于显示传统桌面的 2D 窗口管理器集成:
- 当登录到基于 Wayland 或 X11 的会话时,wlroots 库会打开一个窗口,您可以在其中轻松捕获键盘输入和鼠标事件,并将该输入重定向到虚拟现实环境中的特定窗口。 未来,他们计划借此机会不仅通过虚拟现实控制器,而且通过传统的键盘和鼠标来组织输入。
- Windows 不受 2D 桌面边缘的限制,可以任意调整大小,仅受硬件支持的最大纹理大小限制。
- wxrd 中的 Windows 渲染是使用本机 3D 耳机 (HMD) 刷新率完成的,而普通的窗口管理器窗口镜像使用用于刷新固定监视器上的信息的刷新率。
- 字体渲染可以考虑到 3D 头盔的像素密度,而无需参考固定显示器的像素密度。
- 可以在只有 3D 头盔且没有常规监视器的系统上使用 wxrd。
而 单独的复合服务器的缺点 对于虚拟现实:
- 在虚拟现实环境中,只展示专门为单独的复合服务器发布的应用程序,无法将传统桌面上已经打开的窗口转移或镜像到虚拟现实环境中(即继续使用在虚拟现实环境中打开应用程序)正常屏幕,您将不得不在 3D 头盔的单独环境中重新启动)。
- Wayland 支持在 Vulkan API 实现中可能受到限制。 例如,由于缺乏对 VK_EXT_drm_format_modifier 扩展的支持,gbm 和 wlroots 不能与专有的 NVIDIA 驱动程序一起使用。
数据来源: https://www.collabora.com