🍰

Oculus XR Plugin for Unityのメモ

2023/07/28に公開

versionは4.0.0

サポートされる XRプラグイン サブシステム

  • ディスプレイ
    • WindowsはDX11(僕のPCはDX12
    • AndroidはOpenGL ES 3.0とVulkan
  • インプット
    • コントローラーサポート、ハプティクス、コントローラーのトラッキングとHMDの機能を提供

XR Management サポート

Oculus Pluginを利用するにあたってXR Managementとの組み合わせは必須ではないが、使った方がやりやすくはなる。

Oculus XR PluginはデフォルトでXR Managementをサポートし、組み合わせることで以下が利用できる。

  • Runtime Settings:rendering modes、depth buffer sharing, Dash supportのランタイム設定を調整可能
  • Lifecycle Management:アプリ初期化、シャットダウン、再開などのサブシステムライフサイクルを扱う

Windows 向けの設定

  • Stereo Rendering Mode:Multi Pass または Single Pass Instanced stereo renderingモードから選択可能
    • Multi Pass:右、左目にそれぞれ描画(2つのパス)。Unityは2回描画するので時間は要するがシェーダーに特に変更をすることなく利用できるシンプルな描画。
    • Single Pass Instanced:カスタムシェーダの編集が必要になる。
  • Shader Depth Buffer:シェーダーバッファーの有無を指定。OculusがUnity上で機能を使える用にするためにこれでUnityとOculusで共通のdepth bufferを使うかどうかを指定する。
  • Dash Support:ダッシュサポートの管理。

Android 向けの設定(多いので気になる点だけ

  • Stereo Rendering Mode:Multi Pass または Multiview stereo renderingモードを選択可能
    • Multiview:シングルパスとほぼ同じ。ただ、グラフィックドライバーがドローコールの変換を行うことで、Unity Engineの作業を減らす。
  • Low Overhead Mode:有効にするとGLESグラフィックスドライバーがvalidation codeをバイパスすることで動作が早くなる。無効にすると動作が不安定になるGLES向けの機能。
  • Optimize Buffer Discards:Vulkan向けの機能で、有効にすることでデプスやカラーバッファーの利用に影響がでるので、レンダリングの効果に影響が出るかもしれない。
  • Foveated Rendering Method:フォービエイテッド レンダリングを選択(機能が有効の場合
    • Fixed Foveated Renderingは固定パターンを適用、Eye TrackedはQuest Proで、かつVulkanとMultiview、ARM64を使っている場合にのみサポート。
  • Enable TrackingOrigin Stage Mode:有効の場合に、Tracking OriginがFloorの場合にはシステムのリセンターでTracking Originは変更されない。

Discussion