Virtual Realit-ism.

Addicted To Screen Door Effect

[Meta Quest] Virtual Desktop

Edit (2023-04-28): 新機能「Snapdragon Game Super Resolution」についての説明を追加。
Edit (2022-05-09): PC側の「Automatically adjust bitrate」と、Quest側の「VR Bitrate」設定について、開発者からの説明を補足。
Edit (2023-11-07): VirtualDesktopXRについての補足。

★★★ 吾輩のPCのスペック ★★★
まず始めに、私の宇宙最速PCのスペックを紹介しておきます。言わずと知れず、スペックが違い過ぎると、VDの設定も違くなる可能性が高いため。ここで表示されているスクショは私が現在使っている設定です。スペックが似ている方は参考になるはず。
  • CPU: AMD Ryzen 3700x (OCなし)
  • GPU: Nvidia RTX3060Ti 8GB
  • RAM: 16GB 3200MHz
  • Router: Asus RT-AX55 WiFi6
    PCはEthernetケーブルがぶっ刺さってます
  • プレーエリアの位置: ルーターと同部屋で3mくらい離れた場所
★★★ Streamerの設定(PC側) ★★★
  • Preferred Codec: 一番よいのはAV1 10-Bitですが、Nvidia 4000シリーズ以上又はAMD 7000シリーズ以上が必要です。AV1が不可能な場合は、HVEC 10-Bitを推薦します。例外として、レースゲーム等、画面の切り替えが早いゲームを遊ぶ場合は、H.264+が最適とのこと。
  • OpenXR Runtime: VirtualDesktopXR (VDXR)が追加。VDXRとは、VD用に最適化されたOpenXRと認識して良いと思います。SteamVRに比べると、パフォーマンスが10%程向上しますが、古いゲームなど、OpenXRに対応していないゲームは使用不可です。
  • Allow remote connections: 例えばホテルから自宅のPCに接続してゲームをするとか、Shadow PCのようなリモートサーバーをレンタルしてゲームをするような場合はチェック。
  • Encrypt local traffic: LAN内でゲームをする場合は、データを暗号化しないことで遅延を下げます。自宅でゲームを楽しむ場合はオフで。寮とかに住んでいて、共用WiFiを使っているとかいう場合はオンにしてもよいかも。
  • Automatically adjust bitrate: ネットワークのスピードと遅延を考慮して、自動的にビットレートを設定してくれます。しかし実際のところアプリ側で設定するビットレートが尊重されているようです。開発者は、オンにすることを推奨しています。またオンにした場合は、Quest側の設定「STEAMING」→「VR Bitrate」を最大値にするとよいそうです。
★★★ アプリ側の設定 ★★★

よく間違われますが、アプリ側の左メニューにある「SETTINGS」は一般的に2Dのストリーミングの設定で、ゲームのストリーミングの設定は「STEAMING」画面で行います。
  • VR Graphic Quality: 解像度の設定。使用しているGPUの性能によって選択が異なります。
  • VR Frame Rate: 高いほうが画像が滑らかになりますが、遅延も増し、バッテリーの消費も激しくなります。
  • VR Bitrate: 高いほうが圧縮による画像老化が防げますが、遅延も増えます。PC側の設定で「Allow remote connections」をオンにした場合は、最大値が薦められています。
  • Sharpening: 画像のシャープネスを調節。
  • Gamma: ガンマの調節によって画面を明るくする。
  • Synchronous Spacewarp(SSW): スペースワープとは、FPSが定められた値に届かない場合、規定値の半分のFPSでレンダリングをして、足りない分のフレームをマジックの力により創造して規定値のFPSを確保する裏技。へぼいGPUにはありがたいですが、SSWが起動すると遅延も上がります。
  • Snapdragon Game Super Resolution: AMDのSuper Resolutionと同類の機能で、低解像度でレンダーした画像を画像品質を保ちつつ、拡大する機能。ただし、拡大処理を行うのはQuest側で行うので、PCの処理速度に全く負担を掛けません。とあるゲームを例にすると、横ピクセルが1728から2688まで上がりました。
  • Sliced encoding: フレーム一枚を一気にエンコードするのではなく、分割してエンコードする技術。元は遅延改善の為の技術ですが、個人的な経験では全く変わりないどころか、精密なタイミングが要するゲームには悪影響という感想。
  • Video buffering: データ転送が一時的に低下しても画像がカクカクしないようにしてくれますが、遅延もかなり上がります。
  • Increased color vibrance: 彩度調整。色をもうちょっとカラフルにする。
  • Increase video normal range: カラースペース補正。黒い部分をもっと暗く、白い部分をもっと明るくします。
★★★ ゲーム毎ごとの設定 ★★★

VDにはプロファイルがないため、ゲーム毎ごとの設定が出来ません。またVDはオリジナルのruntimeを使用しているので、Oculus runtime使用時に使えるOculus Dubug ToolやOculus Tray Toolも使用不可。ゲーム毎の設定はSteamVRの機能を利用してSteamゲームのみ可能です。
  1. ダッシュボードから設定画面を起動する。
  2. 「動画」メニューを選択。
  3. 「アプリケーションごとの動画設定」へ行くと解像度等の設定が可能。解像度の設定には%の数値も表示されていますが、VDによって既に変更されている解像度の%に上乗せした%の値なのでわかりにくいです。なので、ピクセルの値に注目した方が良いです。
★★★ パフォーマンスオーバーレイ ★★★
パフォーマンスオーバーレイの表示の仕方と読み方を説明します。パフォーマンスオーバーレイを理解すれば、遅延やカクカク問題が生じた際、何を改善すればよいのかが判ります。パフォーマンスオーバーレイは、メニュー画面にある、左メニュー「STREAMING」→「Advanced Optons」の下にある「Show performance overlay」をチェックしてください。
  1. Framerate: フレームレート数。この値が設定の値よりも低いと、GPU/CPUが弱いという証拠。
  2. Latency: 総合的な遅延値。低ければ、低い方が良い。40ms以下を目指す。
  3. Game: ゲームのレンダリングによって生じている遅延。この数値が高すぎる場合は、ゲームのグラフィックの設定変更や、規定FPSを下げたり、解像度を下げるとよい。
  4. Encoding: 画像のエンコードから生じている遅延。この数値が高すぎる場合は、コーデックをH.264にしたり、解像度を下げるとよい。
  5. Networking: ネットワーク関連で生じている遅延。この数値が高すぎる場合は、WiFiルーターに接近してみたり、ルーターの設定を変えてみる。またPC側でVPNなどを使っていないか確認。
  6. Decoding: 画像のデコードから生じている遅延。この数値が高すぎる場合は、コーデックをH.264にしたり、ビットレートを下げてみると良い。
  7. WiFi情報: Quest側のWiFi情報。5GHzに接続されている事を確認。ルーターによっては2.4Ghzと5GHzが同じSSIDを共用している場合、2.4Ghzと5GHzをコロコロ勝手に変えてしまう場合があるので注意。計測されているスピードも設定されているビットレートよりも余裕をもって高い事。
★★★ 参考になるリンク ★★★