仮想現実ヘッドセットで GNOME と KDE を使用するための xrdesktop プロジェクト

Collaboraの開発者 提出済み プロジェクト xrデスクトップでは、Valve のサポートを受けて、3D メガネと仮想現実ヘルメットを使用して作成された XNUMX 次元環境内で従来のデスクトップと対話するための要素を含むライブラリが開発されています。 ライブラリのコードは C で書かれており、 によって配布 MITライセンスの下で。 既製のアセンブリ 準備された のために アーチの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 バッファからテクスチャを初期化します。
  • GXR — 仮想現実アプリケーションを開発するためのプログラム インターフェイスを抽象化するための API。 現在、OpenVR のみがサポートされていますが、OpenXR 標準のサポートも近い将来追加される予定です。
  • libinputsynth — マウスの動き、クリック、キーストロークなどの入力イベントを合成するためのライブラリ。xdo、xi2、および Clutter のバックエンドの形式で実装されます。
  • xrデスクトップ — 3D 環境でウィンドウを管理するためのライブラリ、付随するウィジェットのセット、およびシーンをレンダリングするためのバックエンド。
  • kwin-effect-xrdesktop и kdeplasma-アプレット-xrdesktop — KDE と統合するための KWin 用プラグインと、KWin を 3D ヘルメットの出力モードに切り替えるための Plasma アプレット。
  • gnome-shell パッチセット и gnome-shell-extension-xrdesktop — xrdesktop サポートと GNOME Shell の 3D ヘルメットへの出力を切り替えるためのアドオンを統合するための GNOME Shell 用のパッチのセット。

このプロジェクトは、仮想環境でデスクトップとウィンドウとの対話を整理するためのいくつかの方法をサポートしています。これらの方法を使用すると、ウィンドウのキャプチャ、拡大縮小、移動、回転、球体上でのオーバーレイ、ウィンドウのドッキングと非表示、コントロール メニューの使用、および同時に制御することができます。両手で複数のコントローラーを使用します。

出所: オープンネット.ru

コメントを追加します