最近 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 驅動程序一起使用。