[Linux]
StardustXR
- StardustXR is 何?
- Linux ベースのディストリビューション用の XR ディスプレイ サーバー
- Stardust は Wayland を使用し、2D/XR アプリの統合には OpenXR を使用します
- Stardust には、2D アプリ周辺の 3D UI (パネル シェルと呼ばれる) などの仮想オブジェクトの作成や、データをオブジェクト (アイテムと呼ばれ、ファイルや Wayland サーフェスなどを表すことができる) として処理するための特別なプロトコルがあります。
- 個人の作業スペース的な使われ方を想定している
- Linux ベースのディストリビューション用の XR ディスプレイ サーバー
アーキテクチャ
環境構築
https://stardustxr.org/docs/getting-started/install に従う
Rustのインストールはasdfの項を見よ
$ git clone https://github.com/StardustXR/stardust-xr-server.git $ cd stardust-xr-server $ cargo build
この時点でcargo runを実行すると、serverが起動してWindowの中にVR的なものが出る。
ヘッドセット
- 話によると、StardustXRはMonadoの基盤で動くものらしいので、まずはヘッドセットもMonadoが動かないといけない
- 場合によってはMonadoでヘッドセットが動くようにドライバ開発などが必要なのかもしれない、日本で売られているものでそういうやつあるかな?
Monado
モナドの要件
Monado は現在、Linux と Android で動作します。 Windows への移植が進行中です。
Monado コンポジターには、特定の Vulkan 拡張機能を備えた Vulkan ドライバーが必要です。
たとえば、コンポジターは、アプリケーションからコンポジターへの最も基本的なテクスチャの送信を有効にするために、
VK_KHR_external_memory_fd と VK_KHR_external_semaphore_fd を必要とします。
必須およびオプションの Vulkan 拡張機能の完全なリストは、doxygen のドキュメントで入手できます。
特に、最新バージョンの radv、intel anv、および nvidia 独自のドライバーがテストされ、動作することが確認されています。
OpenGL を使用する OpenXR アプリケーションには、GL_EXT_memory_object_fd OpenGL 拡張機能をサポートする OpenGL ドライバーが必要です。
OpenGL アプリケーションはテスト済みで、radeonsi、intel i965、iris (mesa 21.2 以降)、および nvidia 専用ドライバーで動作することが確認されています。
Intel ドライバーは、GL_EXT_memory_object_fd に対して限定的なサポートしか提供しないことに注意してください。
amdvlk Vulkan ドライバーを使用して Monado を実行すると、通常は機能しますが、OpenGL を使用して OpenXR アプリケーションを正しくレンダリングできない場合があります。
モナドのインストール
現時点で利用可能な monado 用のビルド済み汎用バイナリはありません。
ディストリビューションで OpenXR SDK と Monado のパッケージが提供されていない場合は、ソースから Monado をビルドする必要があります。
Monadoが稼働しそうなVRヘッドセット
Linuxで動きそうなVRヘッドセットの一覧
valve indexがなんかよさそう