OpenXR Toolkitを使ってDPVR E4のVR負荷削減に挑戦!

レースゲームと相性が良いVRですが、モニターと比較するとPCへの負荷が高く、満足なパフォーマンスを発揮出来ないという方も多いかと思います。

そこで今回はDPVR E4で「OpenXR Toolkit」というソフトを使い、レンダリングのアップスケーリング、フォービエイテッドレンダリング、映像のシャープ化などで、映像の劣化を抑えつつPCへの負荷を減らす事が出来るかを試していきたいと思います!

スポンサーリンク

OpenXR Toolkitのインストールと起動方法

DPVR E4でOpenXRを使うには

「OpenXR Toolkit」を起動させるには前提として「OpenXR」ランタイムにて起動する必要があるが、DPVR E4の「DPVRアシスタント4」にはランタイム切り替え機能が無いため、SteamVR経由で「OpenXR」を実行する方法となります。

そこでまずはSteamVRの設定で「詳細設定」を「表示」に変更し、「開発者」タブ内の「SteamVRをOpenXRランタイムとして設定」をクリックしてランタイムの切り替えを行います。

設定後「OpenRX」タブ内に「現在のOpenXRランタイム:SteamVR」と表示されていれば正常に切り替えが出来ています。

次にソフト側も「OpenXR」に切り替えが必要なのですが、iRacingの場合は画面右上の「DISPLAY MODE」から「OpenXR」を選択するだけでOKです。

またAssetto Corsa CompetizioneやAMS2の場合はソフト側に「OpenXR」への切り替え項目が無いので、「OpenComposite」というソフトを使いSteamVRをバイパスしてOpenXRで起動する必要があります。

利用方法ですがランチャーを使いシステム全体に適用させる方法と、ゲーム個別に適用させる2つの方法があるのですが、私の場合ランチャーでは上手く動作しなかったのでゲーム個別での設定を行いました。

個別での設定はOpenCompositeサイト内の「Download the DLLs: 32-bit 64-bit」から、32bit、64bitそれぞれ対応ゲームの方をクリックすると「openvr_api.dll」というファイルがダウンロードされますので、ゲーム側の「openvr_api.dll」と入れ替えます。

いつでも元に戻せるよう「openvr_api.dll」はバックアップを取る事をおすすめします。

この方法であればDPVR E4はSteamVRを経由するものの、実行は「OpenXR」で行われるので「OpenXR Toolkit」を起動させることが可能です。

但しDPVR E4はSteamVRで接続されているので、ゲームを起動する時はSteamVRも起動しておく必要がある点は注意が必要です。

OpenXR Toolkitの初期設定

次に「OpenXR Toolkit」のインストールですが、OpenXR Toolkitより最新版をダウンロードしインストールします。

インストール後「OpenXR Toolkit Companion app」を起動すると以下のような設定画面となりますので、赤枠部分でメニュー操作のボタンを割り当てておきましょう。

赤枠の項目は初期設定だと「left:F1」「open/down:F2」「right:F3」、ModifiersのCtrlにチェックが入っている場合もあります。

その後ゲームを起動すると初回だけVR画面側にウェルカムメッセージが表示されますので、先程割り当てた「open/down」ボタンでメニューを表示させ、問題無くメニュー表示が出来たら初期設定は完了です。

OpenXR Toolkitの効果を比較

「OpenXR Toolkit」の詳しい機能解説は公式サイトの機能ページにも記載されていますが、その中でもPerformanceタブ内の「Upscaling/Sharpening」「Fixed foveated rendering」はフレームレートと画質に大きく影響しますので、いくつかの組み合わせで負荷状態を比較してみました。

まずは比較ベースとしてiRacingをレンダリング解像度200%(2544×2544)、リフレッシュレート72Hzに設定しSteamVRにて起動してみました。

GPUがフレームを描画するのにかかった時間を示すG(Graphics)が8.3、CPUの利用状況を示すC(CPU)が3.3となっており、現状は72Hzを維持していますが混戦時やコースによってはカクツキや遅延が予測される状態です。

そこで「Upscaling/Sharpening」でアップスケーリングとシャープネス、「Fixed foveated rendering」周辺解像度を調整するフォービエイテッドレンダリング(FFR)の有無で、それぞれの数値を測定してみました。

ちなみにアップスケーリング係数は「Ultra Quality」に相当する77% に設定し、シャープネスの数値は80%としています。

SteamVR OpenXR OpenXR FSR OpenXR FSR+FFR OpenXR CAS OpenXR CAS+FFR
G:8.3
C:3.3
G:8.8
C:3.4
G:7.3
C:3.3
G:6.9
C:3.4
G:8.8
C:3.6
G:7.4
C:3.5

結果としてはSteamVR経由でOpenXRを起動すると、SteamVRのネイティブな状態より余分な負荷がかかるようでGの値も若干増えていますが、FSRやFFRの効果にはそれ以上の恩恵がある事が分かります。

但し、FSRによるアップスケーリングは映像の滲みもそれなりに感じたので、画質優先であればCAS(コントラスト適応シャープニング)に設定し映像のボケを補正しつつ、FFRのみ適応させるだけでも「OpenXR Toolkit」を使うメリットは十分にあると思います。

ちなみにテストした際のFixde foveated renderingの設定は「Preset」に設定しCull outer mask(HAM)は「Yes」、Modeは「Performance」、Patternは「Wide」としました。

元々のレンダリング解像度を低い設定にしていると周辺の画質が極端に悪くなってしまいますが、200%(2544×2544)程の解像度で設定している場合はModeを「Performance」にしても左程映像に違和感は感じませんでしたので、しばらくはこの設定でプレイしていこうと思います!

おわりに

今回の「OpenXR Toolkit」の紹介はいかがだったでしょうか?

SteamVR経由にて「OpenXR」を起動しているのでネイティブな状態とは言えませんが、それでも確実にPC負荷は削減出来ますし、設定する事でよりフレームレートを安定させたり、レンダリング解像度もワンランク上の設定出来るなどVRをより楽しめる環境の手助けにはなるかと思います。

またVR負荷が高いAssetto Corsa CompetizioneやAMS2でも同様の効果が得られましたので、iRacing以外のVRゲームをプレイされている方も是非一度試して頂ければと思います♪

コメント