「Oculus Rift」の版間の差分
(同期) |
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
||
(2人の利用者による、間の3版が非表示) | |||
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}} からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは {{Aur|oculus-rift-sdk-jherico-git}} でインストールすることが可能です。 |
+ | 公式の Oculus Rift SDK はAUR のパッケージ {{Aur|oculus-rift-sdk}}{{Broken package link|パッケージが存在しません}} からインストールすることができます。CMake ビルドの対応などの修正が加えられたバージョンは {{Aur|oculus-rift-sdk-jherico-git}} でインストールすることが可能です。 |
パッケージは X セッションが起動した時に {{ic|oculusd}} デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。 |
パッケージは X セッションが起動した時に {{ic|oculusd}} デーモンが実行されるように設定します。パッケージをインストールして X を再起動すれば自動的にバックグラウンドで実行されます。 |
||
22行目: | 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.}} |
||
− | ==== |
+ | ====手動で xrandr を使う==== |
+ | プライマリディスプレイが DVI-I-2 で DVI-I-3 が Rift の場合、1152x864 が 75Hz をサポートする最大解像度です。使用するには: |
||
− | AUR にある {{Aur|riftutilities-git}}{{Broken package link|{{aur-mirror|riftutilities-git}}}} というパッケージには {{ic|xrandrift}} という名のスクリプトが含まれています。このスクリプトは {{ic|xrandr}} を使って Rift を使うのに適したビデオモードを (引数に合わせて) 判断します。さらに、現在のビデオモードを記録して、プログラムが終了した後にスイッチバックします。 |
||
+ | $ 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}} に変更してください: |
||
− | $ xrandrift OculusWorldDemo |
||
+ | $ 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 |
||
− | {{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.}} |
||
+ | xrandr --auto を使用した場合、ディスプレイが乱れることがあります。以下のコマンドを使ってひとつのモニターに戻してください: |
||
− | Team Fortress 2 などの Source のゲームの場合 (プロパティの起動オプションで設定します): |
||
+ | $ xrandr --output DVI-I-2 --primary --auto --rotate normal --panning 1920x1080 --scale 1x1 --output DVI-I-3 --off |
||
− | $ xrandrift -e -p %command% -freq 75 |
||
− | + | ==動作するアプリケーション== |
|
+ | [[バーチャルリアリティ#対応ソフトウェア]]を参照。 |
||
− | $ xrandrift -s -p OculusWorldDemo |
||
+ | ==トラブルシューティング== |
||
− | ====手動で xrandr を使う==== |
||
+ | ===DK2 カメラによってカーネルログが埋まってしまう=== |
||
− | 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 |
||
+ | xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk? |
||
− | 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}}. |
||
+ | USB 3.0/Hybrid 2.0/3.0 端子で Oculus DK2 Camera に何らかの問題が起こっています。USB 2.0 端子に接続してみてください。 |
||
− | 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 |
||
+ | ===サスペンド/復帰後にカメラの挙動がおかしい=== |
||
− | 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: |
||
+ | サスペンド・復帰してから Rift を使用すると、カメラが位置トラッキングデータをよこさなくなって、VR プログラムが位置トラッキングできなくなることがあります。`ovrd` プロセスを終了しようとすると、ロックアップして親プロセス (ウィンドウマネージャ) が終了するまでゾンビプロセスになります。復帰後に、DK2 カメラを一度抜いてから再度接続することで問題は解決します。 |
||
− | xrandr --output DVI-I-2 --primary --auto --rotate normal --panning 1920x1080 --scale 1x1 --output DVI-I-3 --off |
||
− | == |
+ | ===古いアプリケーションで読み込みが遅延する=== |
+ | 何らかの理由で、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