在虚拟现实耳机中使用 GNOME 和 KDE 的 xrdesktop 项目

来自 Collabora 的开发人员 已提交 项目 桌面版其中,在 Valve 的支持下,正在开发一个库,其中包含用于在使用 3D 眼镜和虚拟现实头盔创建的三维环境中与传统桌面进行交互的元素。 库代码是用 C 编写的 分发者 根据麻省理工学院的许可。 现成的组件 准备好的Arch Linux и Ubuntu 19.04 / 18.04.

目前,Linux已经有了直接输出到虚拟现实耳机的工具(X11的Vulkan扩展VK_EXT_acquire_xlib_display和Wayland的VK_EXT_acquire_wl_display),但在3D空间中正确渲染窗口和屏幕刷新率同步层面上还没有支持。 xrdesktop 项目的目标是开发允许在虚拟环境中使用专注于 XNUMXD 屏幕显示以及键盘和鼠标控制的经典界面的方法。

在虚拟现实耳机中使用 GNOME 和 KDE 的 xrdesktop 项目

xrdesktop 组件扩展了现有的窗口和复合管理器,以使用虚拟现实运行时系统在 3D 虚拟环境中渲染窗口和桌面。 xrdesktop 提倡集成到现有桌面环境中的想法,无需运行单独的专门复合管理器,并允许与常规显示器一起使用的现有自定义配置与 XNUMXD 头盔一起使用。

该项目的架构意味着能够与任何桌面集成,但在当前的开发阶段,支持虚拟现实耳机的组件是针对 KDE 和 GNOME 实现的。 对于 KDE,对 3D 头盔的支持是通过类似 Compiz 的插件实现的,而对于 GNOME,则是通过一组 GNOME Shell 补丁实现的。 这些组件以单独场景或叠加模式的形式将现有窗口镜像到 3D 头盔的虚拟环境中,其中桌面窗口可以叠加在其他正在运行的虚拟现实应用程序上。

除了渲染引擎之外,xrdesktop 还提供了使用专用空间控制器(例如 Valve Index 和 VIVE Wand)提供导航和输入的组件。 Xrdesktop 使用来自 VR 控制器的信息来生成常规输入事件,模拟键盘和鼠标的使用。

xrdesktop 包含多个使用 OpenVR 为 VR 运行时生成窗口纹理的库,以及用于 3D 环境中完整桌面的基于 API 的渲染系统。 由于 xrdesktop 不提供自己的窗口管理器,因此需要与现有窗口管理器进行集成(xrdesktop 可以移植到任何 X11 或 Wayland 窗口管理器)。 在图形驱动程序方面,操作需要支持 Vulkan API 和 VK_KHR_external_memory 扩展的驱动程序。

在虚拟现实耳机中使用 GNOME 和 KDE 的 xrdesktop 项目

xrdesktop的主要组件:

  • 古尔坎 - Vulkan 的 glib 绑定​​,为处理设备、着色器和从内存或 DMA 缓冲区初始化纹理提供类;
  • 克西尔 — 用于抽象程序接口以开发虚拟现实应用程序的 API。 目前仅支持OpenVR,但近期将增加对OpenXR标准的支持;
  • 库输入合成器 — 一个用于合成输入事件的库,例如鼠标移动、点击和击键,以 xdo、xi2 和 Clutter 后端的形式实现;
  • 桌面版 — 用于在 3D 环境中管理窗口的库、一组随附的小部件和用于渲染场景的后端;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — 用于与 KDE 集成的 KWin 插件和用于将 KWin 切换到 3D 头盔上的输出模式的 Plasma 小程序;
  • gnome-shell 补丁集 и gnome-shell-扩展-xrdesktop — 一组 GNOME Shell 补丁,用于集成 xrdesktop 支持和一个用于在 GNOME Shell 中将输出切换到 3D 头盔的插件。

该项目支持多种在虚拟环境中组织与桌面和窗口交互的方法,可用于捕获窗口、缩放、移动、旋转、覆盖在球体上、停靠和隐藏窗口、使用控制菜单并同时控制两只手使用多个控制器。

来源: opennet.ru

添加评论