在虛擬實境耳機中使用 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

添加評論