概要
OculusRift DK2+UnityでOVRSDK0.4.4を使う時に、ビルド及び実行条件次第でジャダー(首を振った時に絵がガクガクする、凄く酔います)が起きる事がknown issueとなっています。
https://forums.oculus.com/viewtopic.php?f=37&t=18363
しかし、OVRSDK0.4.4+OculusRuntime0.4.4は現状では最もVRパフォーマンスが出る組み合わせでもあります(FPSが稼ぎやすい、遅延が短い)
よってこのエントリでは、VRコンテンツ製作者が上記環境で作る時に、どんなオプションでビルドすれば良いか、僕の調査結果を書きます。
先に結論
UnityEditorはDX9モードでもDX11モードでも良いので、BuildSettings→PlayerSettings→Other Settings→Use Direct3D11のチェックを必ず入れる事を推奨します。
また、0.4.4環境では-force-d3dx9オプションは不要です。
検証環境
ソフトウェア
- Unity4.5.5p5
- Tuscany Demo
- OVRSDK0.4.4
- OculusRuntime 0.4.4
PC1(デスクトップ)
PC2(ラップトップ)
制作環境
- UnityDX11モード + DX11ビルド
- UnityDX9モード + DX11ビルド
- UnityDX9モード + DX9ビルド
検証手法
制作環境の3環境においてビルドしたexeを、PC1,PC2それぞれについて
- -force-d3d9
- -force-d3d11
オプションを付けて実行して「ジャダーの有無」「その他不具合」を目視確認。
また、いずれのPCでもTuscanyDemoが75FPS以上の速度で動くスペックです。
検証結果
緑のセルは問題なく動いた組み合わせです。赤いセルは問題があった組み合わせです。
考察
- DX9モードでビルドする意味は殆どない
- 遥か昔はExtendModeだとUnityで作られたデモを遊ぶとき -force-d3dx9オプションを指定する必要があったが最新環境では不要。むしろ0.4.4環境ではジャダーを引き起こす可能性もある