推出 wxrd,一种用于虚拟现实系统的基于 Wayland 的复合服务器

Collabora公司推出了一款基于Wayland协议实现的复合服务器wxrd,旨在在三维虚拟现实环境中创建基于xrdesktop组件的桌面。 其基础是 wlroots 库(由 Sway 用户环境的开发人员开发)和 wxrc 复合服务器(设计用于虚拟现实系统)。 该项目代码是用 C 语言编写的,并根据 MIT 许可证分发。

与 xrdesktop 最初提出的解决方案不同,wxrd 为虚拟现实环境提供了专门的复合服务器,而不是为 VR 系统调整现有的窗口管理器和桌面 shell(xrdesktop 项目为 kwin 和 GNOME Shell 提供了单独的补丁,这需要针对每个新的补丁进行调整)释放这些组件)。 使用 wxrd 不仅可以镜像现有二维桌面的内容,同时显示在常规显示器上,还可以单独处理专门为三维桌面启动的窗口(即,不提供从将VR头盔放到当前系统桌面上使用的桌面上,而是为VR头盔形成一个独立的环境)。

与类似的项目 Simula VR、Stardust、Motorcar 和 Safespaces 不同,wxrd 复合服务器的创建着眼于使用最少数量的依赖项和低资源消耗。 Wxrd 还允许您不仅可以使用基于 Wayland 协议的应用程序,还可以使用 xwayland DDX 服务器运行 X11 应用程序。

由于虚拟键盘的 Wayland 协议扩展正在开发中,因此 wxrd 的输入是通过键盘输入模拟系统实现的,该系统从 xrdesktop 中提供的虚拟键盘传输所有 unicode 字符,包括表情符号。 要运行 wxrd,您需要一个支持 Vulkan 图形 API 和 VK_EXT_image_drm_format_modifier 扩展的显卡,自版本 21.1(包含在 Ubuntu 21.04 中)开始在 Mesa 中受支持。 使用 Vulkan API 进行渲染需要 VK_EXT_physical_device_drmm 扩展,该扩展在 Mesa 21.2 (Ubuntu 21.10) 中引入。

为虚拟现实系统使用单独的复合服务器而不是与用于显示传统桌面的 XNUMXD 窗口管理器集成的优点:

  • 在基于 Wayland 或 X11 的会话中运行时,wlroots 库会打开一个窗口,您可以在其中轻松捕获键盘输入和鼠标事件,并将该输入重定向到虚拟现实环境中的特定窗口。 未来,他们计划使用此功能不仅通过 VR 控制器组织输入,还可以使用常规键盘和鼠标组织输入。
  • Windows 不受 XNUMXD 桌面框架的限制,可以是任意大小,仅受硬件支持的最大纹理大小限制。
  • wxrd 中的窗口渲染以本机 3D 头戴式显示器 (HMD) 图像刷新率执行,而从传统窗口管理器镜像窗口时,则使用用于更新固定监视器上信息的频率。
  • 可以考虑 3D 头盔的像素密度来渲染字体,而不参考固定监视器的像素密度。
  • 可以在仅具有 3D 耳机且没有常规显示器的系统上使用 wxrd。

VR 的单独复合服务器的缺点:

  • 在 VR 环境中,仅显示专门为单独的复合服务器启动的应用程序,而无法将传统桌面上已打开的窗口传输或镜像到 VR 环境(即,要继续使用在常规屏幕上打开的应用程序,您需要必须在 3D 头盔的单独环境中重新启动)。
  • Wayland 支持在 Vulkan API 实现中可能受到限制。 例如,由于缺乏对 VK_EXT_drm_format_modifier 扩展的支持,gbm 和 wlroots 无法与专有 NVIDIA 驱动程序一起使用。



来源: opennet.ru

添加评论