Version: 2023.2
言語: 日本語
XR におけるユニバーサルレンダーパイプラインの互換性
シングルパスインスタンスレンダリングとカスタムシェーダー

ステレオレンダリング

VR とほとんどの MR デバイスでは、Unity シーンをステレオでレンダリングする必要があります。Unity XR は、以下の 2 つのステレオレンダリングモードをサポートしています。

  • Multi-pass (マルチパス): このモードでは、Unity は、それぞれの目に対して 1 つのレンダーパスを実行します。レンダリングループの一部が 2 つのパス間で共有されるため、マルチパスレンダリングは、2 つの固有のカメラでシーンをレンダリングするよりも高速です。マルチパスモードは、既存のシェーダーやレンダリングユーティリティとの互換性が最も高くなりますが、シングルパスインスタンシングモードよりも低速です。
  • Single-pass Instanced (シングルパスインスタンシング): このモードでは、Unity は、インスタンス化されたドローコールを使用して、単一のパスでシーンをレンダリングします。このモードは、マルチパスモードと比較して、CPU 使用量が大幅に削減され、GPU 使用量が若干削減させます。
  • Multiview: (マルチビュー) 一部の OpenGL および OpenGL ES デバイスでサポートされる、シングルパスインスタンシングレンダリングの一種です。利用可能な場合は、Single-pass Instancing がこのオプションに置き換えられます。

ノート: 以前の、単一のレンダーパスを使用してシーンを 2 倍幅のテクスチャにレンダリングする技法は、現在では使用できません。

これに関する背景的な情報は、高度なステレオレンダリングで AR と VR のパフォーマンスを最大限に引き出す方法 を参照してください。現在、シングルパスインスタンシングステレオレンダリングは、ほとんどの VR プラットフォームで利用可能になっています。

レンダリングモードの設定

Render Mode (レンダリングモード) の設定は、Project Settings 内の XR Plug-in Management の下にあります。各 XR プロバイダープラグインが (サポートされている場合は) 独自の設定を提供します。

レンダリングモードの設定は、以下の手順で行います。

  1. Project Settings を開きます (メニュー: Edit > Project Settings)。

  2. 必要であれば XR Plugin Management セクションを展開します。

  3. 該当のプロバイダープラグインの設定ページを選択します。

  4. リストからモードを選択します。


    MockHMD プロバイダープラグインの Render Mode のオプション

ノート: プラグインによっては、この設定の名前が Stereo Rendeing Mode になることがあります。

シングルパスインスタンシングレンダリングモードのサポート

シングルパスインスタンシングレンダリングモードは、以下のプラットフォームとデバイスでサポートされています。

  • Multiview 拡張機能をサポートする Android デバイス
  • HoloLens
  • PlayStation VR
  • 以下の PC デバイス (テザリング)
  • デスクトップの DirectX の場合は、GPU が Direct3D 11 と VPAndRTArrayIndexFromAnyShaderFeedingRasterizer 拡張機能をサポートしている必要があります。
  • デスクトップの OpenGL の場合は、GPU が以下の拡張機能のいずれかをサポートしている必要があります。
    • GL_NV_viewport_array2
    • GL_AMD_vertex_shader_layer
    • GL_ARB_shader_viewport_layer_array

Single Pass Instanced モードがサポートされていない状態で Render Mode をこのモードに設定すると、レンダリングモードは Multi-pass モードにフォールバックします。

ノート: Unity は、ディファードレンダリングを使用している場合には、ビルトインの旧レンダーパイプラインでのシングルパスステレオインスタンシングをサポートしません。

XR におけるユニバーサルレンダーパイプラインの互換性
シングルパスインスタンスレンダリングとカスタムシェーダー