「Oculus Rift」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
|||
(2人の利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[en:Oculus Rift]] |
[[en:Oculus Rift]] |
||
Oculus Rift は [http://www.oculusvr.com/ Oculus VR] によって開発されているバーチャルリアリティヘッドマウントディスプレイです。 |
Oculus Rift は [http://www.oculusvr.com/ Oculus VR] によって開発されているバーチャルリアリティヘッドマウントディスプレイです。 |
||
+ | ==インストール== |
||
− | ==基本設定== |
||
===ハードウェア=== |
===ハードウェア=== |
||
12行目: | 12行目: | ||
===SDK=== |
===SDK=== |
||
+ | 公式の Oculus Rift SDK はAUR のパッケージ {{Aur|oculus-rift-sdk}}{{Broken package link|パッケージが存在しません}} からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは {{Aur|oculus-rift-sdk-jherico-git}} でインストールすることが可能です。 |
||
− | ====パッケージ==== |
||
− | 公式の Oculus Rift SDK はAUR のパッケージ {{Aur|oculus-rift-sdk}} からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは {{Aur|oculus-rift-sdk-jherico-git}} でインストールすることが可能です。 |
||
パッケージは X セッションが起動した時に {{ic|oculusd}} デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。 |
パッケージは X セッションが起動した時に {{ic|oculusd}} デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。 |
||
− | |||
− | ====公式のソースから==== |
||
− | SDK は [https://developer.oculusvr.com/ Oculus VR Developer Center] で無料の登録をすれば入手できます。 |
||
− | |||
− | SDK をコンパイルしてから WorldDemo を実行して確認してください: |
||
− | |||
− | $ tar zxvf ovr_sdk_linux_4.0.3.tar.gz |
||
− | $ cd OculusSDK |
||
− | $ make |
||
− | $ ./Samples/OculusWorldDemo/Release/OculusWorldDemo_x86_64_Release |
||
===ビデオモード=== |
===ビデオモード=== |
||
33行目: | 22行目: | ||
Rift をプライマリモニタにしないと、同期が正しく動作しません。 |
Rift をプライマリモニタにしないと、同期が正しく動作しません。 |
||
+ | {{Note|ディスプレイを回転させると遅延フレームが発生し、Windows における Extended Mode と同じ状態になります。ディスプレイを回転しない場合、遅延がなくなります (Windows の Direct Mode と同等)。残念ながらディスプレイを回転しない状態で動作するアプリケーションは一部に限られています。問題なく動作するかアプリケーションごとにテストする必要があります。}} |
||
− | {{Note|Having the display rotated adds an extra frame of latency, which makes it operate at the equivalent of Extended Mode on Windows. With the display unrotated, this extra frame of latency is removed and you get a much improved experience (equivalent of Direct Mode on Windows). Unfortunately only certain applications work correctly with this. You should test each to see if each application works correctly unrotated first.}} |
||
− | |||
− | ====xrandrift==== |
||
− | |||
− | AUR にある {{Aur|riftutilities-git}}{{Broken package link|{{aur-mirror|riftutilities-git}}}} というパッケージには {{ic|xrandrift}} という名のスクリプトが含まれています。このスクリプトは {{ic|xrandr}} を使って Rift を使うのに適したビデオモードを (引数に合わせて) 判断します。さらに、現在のビデオモードを記録して、プログラムが終了した後にスイッチバックします。 |
||
− | |||
− | (対応しているアプリケーションで) 遅延をできるだけ減らすには、以下のようにプログラムを実行してください: |
||
− | |||
− | $ xrandrift OculusWorldDemo |
||
− | |||
− | {{Note|You may experience tearing due to the selected video mode being too big to fit on the same framebuffer as your device. If you see an odd vertical tearing in the Rift, try running with {{ic|-o}} instead.}} |
||
− | |||
− | Team Fortress 2 などの Source のゲームの場合 (プロパティの起動オプションで設定します): |
||
− | |||
− | $ xrandrift -e -p %command% -freq 75 |
||
− | |||
− | 60Hz で動作するゲームの場合: |
||
− | |||
− | $ xrandrift -s -p OculusWorldDemo |
||
====手動で xrandr を使う==== |
====手動で xrandr を使う==== |
||
+ | プライマリディスプレイが DVI-I-2 で DVI-I-3 が Rift の場合、1152x864 が 75Hz をサポートする最大解像度です。使用するには: |
||
− | Say our primary monitor is DVI-I-2, and DVI-I-3 is the Rift, and that 1152x864 is the highest mode that supports 75Hz. To use this: |
||
− | + | $ xrandr --output DVI-I-3 --primary --rotate left --mode 1080x1920 --rate 75 --auto --output DVI-I-2 --mode 1152x864 --rate 75 --auto --same-as DVI-I-3 --scale-from 1920x1080 |
|
+ | Rift SDK ではセカンダリディスプレイの回転を推奨していませんが、回転しないと多くのプログラムで問題が発生します。以下のコマンドはプライマリディスプレイをディスプレイ全体の拡大版として設定します。パンしたい場合、{{ic|--scale-from}} を {{ic|--panning}} に変更してください: |
||
− | Although the Rift SDK reccomends not rotating the secondary display, not doing so seems to cause issues with a number of programs. This command will set the primary monitor to have a scaled version of the entire display. If you prefer panning, change {{ic|--scale-from}} to {{ic|--panning}}. |
||
− | + | $ xrandr --output DVI-I-3 --primary --rotate left --mode 1080x1920 --rate 60 --auto --output DVI-I-2 --mode 1920x1080 --rate 60 --auto --same-as DVI-I-3 --scale-from 1920x1080 |
|
+ | xrandr --auto を使用した場合、ディスプレイが乱れることがあります。以下のコマンドを使ってひとつのモニターに戻してください: |
||
− | The above video modes can have some havoc on your display if you simply use xrandr --auto, as it'll still try to scale something. Use this to return to one monitor: |
||
− | + | $ xrandr --output DVI-I-2 --primary --auto --rotate normal --panning 1920x1080 --scale 1x1 --output DVI-I-3 --off |
|
==動作するアプリケーション== |
==動作するアプリケーション== |
||
+ | [[バーチャルリアリティ#対応ソフトウェア]]を参照。 |
||
− | Rift と Linux が問題なく動作するアプリは今のところひと握りです。その中には AUR に存在するものもあります。 |
||
− | |||
− | ===Dolphin VR (Gamecube エミュレータ)=== |
||
− | |||
− | {{Aur|dolphin-emu-vr-git}} はゲームキューブのエミュレータです。パッチを適用することで完全なヘッドトラッキングのステレオスコープレンダリングを行うことができ、さらに VR でゲームを上手く動作させるためのカスタマイズも多数施されています (例えば、カリング処理を無効化して世界全体を見渡せるようにしています)。 |
||
− | |||
− | {{Note|This application works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated.}} |
||
− | |||
− | ===Oculus-wine-wrapper=== |
||
− | |||
− | {{Aur|oculus-wine-wrapper-git}} は Wine を動かす時に SDK の Linux 版と Windows 版の違いをうめるためのユーティリティです。Wine アプリケーションが使用できる共有メモリコンテキストを作成して、アプリからネイティブの Oculus SDK にアクセスできるようにします。wineprefix に SDK をインストールする必要はありません。 |
||
− | |||
− | ===Unity ゲーム (wine)=== |
||
− | |||
− | Unity を使用しているゲームの性能を最大限発揮するには、{{ic|-force-opengl}} で強制的に OpenGL モードにするのが最適です。しかしながら、wine にパッチをあてないとこのモードを使うことはできません [http://wiki.unity3d.com/index.php/Running_Unity_on_Linux_through_Wine#.22-force-opengl.22_option_crashing_Unity_.28Experimental_fix.29]。{{Aur|wine-unity3d-git}} パッケージを使うことでゲームをネイティブの OpenGL で動作させることが可能になります。残念ながら頻繁にビデオモードなどの設定が変わってしまうので、画面設定が必要になります。さらに、ネイティブの OpenGL なので、nvidia の __GL_THREADED_OPTIMIZATIONS は適用されません。コマンドは以下のようになります: |
||
− | |||
− | env __GL_THREADED_OPTIMIZATIONS=1 oculus-wine-wrapper UnityGame.exe -screen-height 1080 -screen-width 1920 -popupwindow -force-opengl |
||
− | |||
− | ===Minecrift (Minecraft VR)=== |
||
− | |||
− | Linux サポートはメインラインに入りましたが、Linux サポートを完全に機能させるアップデートはまだリリースされていません。最新の JRift (ネイティブの java rift ランタイム) ビルドで既存のバージョンの Minecraft を動作させる方法は [https://www.reddit.com/r/oculus_linux/comments/2shnbk/minecrift_linuxmac_support_coming_soon_steps_to/ こちら] に書かれています。 |
||
− | |||
− | さらに、JRE7 よりも JRE8 の方がパフォーマンスが上がるという報告が多数上げられています。 |
||
− | |||
− | {{Note|This application works correctly with Portrait (Direct) Mode, and should be run with the Rift un-rotated. Unfortunately, as of 5/12/15 the ingame GUI will display as an elongated 9:16 rectangle, as opposed to staying at the screen ratio. This is usable but not ideal.}} |
||
− | |||
− | ===JanusVR=== |
||
− | |||
− | JanusVR は 3D のウェブサイトを探検できるアプリケーションです。AUR のパッケージが存在します: {{AUR|janus-vr-browser-bin}}{{Broken package link|{{aur-mirror|janus-vr-browser-bin}}}}。 |
||
− | |||
− | JanusVR のコードがアップデートされても AUR パッケージは自動的にアップデートされません。その場合はパッケージを再ビルドしてください。 |
||
− | |||
− | {{Note|This application works correctly with Portrait (Direct) Mode (as of 42.3), and should be run with the Rift un-rotated.}} |
||
==トラブルシューティング== |
==トラブルシューティング== |
||
120行目: | 59行目: | ||
何らかの理由で、ovrd の 0.4.4 以下を使用するようにコンパイルされたアプリケーションで {{ic|ovrd}} の 0.5.0 以上を使用すると読み込みが遅延します。古いアプリケーションを使用すると、まるで泳いでいるかのような表示になってしまいます。古いバージョンの SDK をインストールすることで解決します。 |
何らかの理由で、ovrd の 0.4.4 以下を使用するようにコンパイルされたアプリケーションで {{ic|ovrd}} の 0.5.0 以上を使用すると読み込みが遅延します。古いアプリケーションを使用すると、まるで泳いでいるかのような表示になってしまいます。古いバージョンの SDK をインストールすることで解決します。 |
||
+ | |||
+ | ===xrandr 実行時に Oculus DK1 がモニターとして認識されなかったり切断中と表示される=== |
||
+ | |||
+ | 最新の NVIDIA ドライバーではヘッドマウンドディスプレイ (Oculus DK1 など) を標準のモニターとして使用するかどうか指定する AllowHMD オプションが追加されています。NVIDIA はデフォルトで NO に設定しているため、DK1 が切断中と表示されます。以下のコマンドを実行することで解決できます: |
||
+ | # nvidia-xconfig --allow-hmd=yes |
||
+ | |||
+ | もしくは {{ic|/etc/X11/xorg.conf}} の Screen セクションに手動で {{ic|Option "AllowHMD" "yes"}} を追加してください。 |
||
+ | |||
+ | ソース: https://forums.oculus.com/developer/discussion/34407/gnu-linux-plans#Comment_566814 |
2024年9月3日 (火) 22:40時点における最新版
Oculus Rift は Oculus VR によって開発されているバーチャルリアリティヘッドマウントディスプレイです。
目次
インストール
ハードウェア
Oculus Rift のデバイスは HDMI によってセカンダリディスプレイとしてグラフィックカードに接続します。センサーとして使うには USB でも接続します。oculus-udevAUR パッケージが適当な udev ルールを設定します。
完全に利用するには input
と video
グループにユーザーを追加する必要があります。plugdev
グループは必要なくなりました (モードは 0666 に設定されます)。
SDK
公式の Oculus Rift SDK はAUR のパッケージ oculus-rift-sdkAUR[リンク切れ: パッケージが存在しません] からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは oculus-rift-sdk-jherico-gitAUR でインストールすることが可能です。
パッケージは X セッションが起動した時に oculusd
デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。
ビデオモード
Rift を適切に機能させるには、特定のビデオモードを使う必要があります。特に、リフレッシュレートが低い通常のモニタと同じビデオモードを使っている場合、ゲームのリフレッシュレートも低くなってしまいます。
Rift をプライマリモニタにしないと、同期が正しく動作しません。
手動で xrandr を使う
プライマリディスプレイが DVI-I-2 で DVI-I-3 が Rift の場合、1152x864 が 75Hz をサポートする最大解像度です。使用するには:
$ xrandr --output DVI-I-3 --primary --rotate left --mode 1080x1920 --rate 75 --auto --output DVI-I-2 --mode 1152x864 --rate 75 --auto --same-as DVI-I-3 --scale-from 1920x1080
Rift SDK ではセカンダリディスプレイの回転を推奨していませんが、回転しないと多くのプログラムで問題が発生します。以下のコマンドはプライマリディスプレイをディスプレイ全体の拡大版として設定します。パンしたい場合、--scale-from
を --panning
に変更してください:
$ xrandr --output DVI-I-3 --primary --rotate left --mode 1080x1920 --rate 60 --auto --output DVI-I-2 --mode 1920x1080 --rate 60 --auto --same-as DVI-I-3 --scale-from 1920x1080
xrandr --auto を使用した場合、ディスプレイが乱れることがあります。以下のコマンドを使ってひとつのモニターに戻してください:
$ xrandr --output DVI-I-2 --primary --auto --rotate normal --panning 1920x1080 --scale 1x1 --output DVI-I-3 --off
動作するアプリケーション
トラブルシューティング
DK2 カメラによってカーネルログが埋まってしまう
カーネルログに以下のようなメッセージが大量に表示される場合:
xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
USB 3.0/Hybrid 2.0/3.0 端子で Oculus DK2 Camera に何らかの問題が起こっています。USB 2.0 端子に接続してみてください。
サスペンド/復帰後にカメラの挙動がおかしい
サスペンド・復帰してから Rift を使用すると、カメラが位置トラッキングデータをよこさなくなって、VR プログラムが位置トラッキングできなくなることがあります。`ovrd` プロセスを終了しようとすると、ロックアップして親プロセス (ウィンドウマネージャ) が終了するまでゾンビプロセスになります。復帰後に、DK2 カメラを一度抜いてから再度接続することで問題は解決します。
古いアプリケーションで読み込みが遅延する
何らかの理由で、ovrd の 0.4.4 以下を使用するようにコンパイルされたアプリケーションで ovrd
の 0.5.0 以上を使用すると読み込みが遅延します。古いアプリケーションを使用すると、まるで泳いでいるかのような表示になってしまいます。古いバージョンの SDK をインストールすることで解決します。
xrandr 実行時に Oculus DK1 がモニターとして認識されなかったり切断中と表示される
最新の NVIDIA ドライバーではヘッドマウンドディスプレイ (Oculus DK1 など) を標準のモニターとして使用するかどうか指定する AllowHMD オプションが追加されています。NVIDIA はデフォルトで NO に設定しているため、DK1 が切断中と表示されます。以下のコマンドを実行することで解決できます:
# nvidia-xconfig --allow-hmd=yes
もしくは /etc/X11/xorg.conf
の Screen セクションに手動で Option "AllowHMD" "yes"
を追加してください。
ソース: https://forums.oculus.com/developer/discussion/34407/gnu-linux-plans#Comment_566814