GPU レンダリングを最適化する

Unity には、インスタンス化とオクルージョン カリングを使用してドローコールを大幅に削減し、非表示オブジェクトのレンダリングを排除するさまざまな高度な GPU 機能が用意されています。これらの機能は連携して動作し、複雑なシーンでの GPU の効率を最大化します。

GPU 常駐ドロワー

GPU 常駐ドロワーは、GPU インスタンシングを自動的に使用して、ドローコールを減らし、CPU 処理時間を解放します。この機能は、同じメッシュを共有するオブジェクトが多数含まれる大きなシーンで最も効果的です。

この機能を有効にする

  1. Unity のメインメニューで、[Edit] > [Project Settings] > [Graphics] をクリックします。
  2. [Shader Stripping] セクションで、[Batch Renderer Group Variants] を [Keep All] に設定します。
  3. デフォルトのレンダリング パイプライン アセット(URP アセット)を見つけます。
  4. プロジェクトでこのアセットを検索します。
  5. アセットを右クリックして [プロパティ] を選択します。
  6. [Renderer List] で、[Universal Renderer] を右クリックして [Properties] を選択します。
  7. [レンダリング パス] を [Forward+] に設定します。
  8. URP アセットに戻って選択し、その他アイコンをクリックして [デバッグ] を選択します。
  9. [GPU Resident Drawer Mode] を [Instanced Drawing] に設定します。

GPU オクルージョン カリング

オクルージョン カリングでは、CPU ではなく GPU を使用して、他のオブジェクトの背後に隠れているオブジェクトを除外します。この機能は、屋内や密集した環境など、オクルージョンが顕著なシーンで最も効果を発揮します。

この機能を有効にする

  1. Unity のメインメニューで、[Edit] > [Project Settings] > [Graphics] をクリックします。
  2. [GPU オクルージョン カリング] を有効にします。
  3. [URP] タブを選択します。
  4. [Render Graph] セクションで、[Compatibility Mode (Render Graph Disabled)] を無効にします。

バッファの破棄を最適化する

この最適化により、不要な深度バッファ データを破棄し、MSAA カラーバッファを効率的に処理することで、メモリ オペレーションが削減され、パフォーマンスが向上します。

利点

  • グラフィック データの不要なコピーと移動を排除します。
  • あらゆるケースで GPU レンダリングを高速化します。

この機能を有効にする

  1. Unity のメインメニューで、[Edit] > [Project Settings] をクリックします。
  2. [XR プラグイン管理] セクションを開き、[OpenXR] をクリックします。
  3. [Android] タブを選択します。
  4. [Android XR] 機能グループを選択します。
  5. [Android XR Support] の横にある歯車アイコンをクリックします。
  6. [バッファ破棄の最適化(Vulkan)] を有効にします。

    バッファ破棄を最適化する Unity の設定

前面から背面へのレンダリングを無効にする

フロント ツー バック レンダリングは、シーンで試すことができるレンダリング順序のテストです。Low-Resolution-Z(LRZ)などの最適化と組み合わせると、背景オブジェクトで高コストのフラグメント シェーダーが使用されているオクルージョンが著しいシーンでパフォーマンスの改善に役立つ可能性があります。

ただし、この設定を有効にすると、パフォーマンスが低下する可能性もあります。そのため、デフォルト設定(無効)のままにしておくことをおすすめします。