Unity には、インスタンス化とオクルージョン カリングを使用してドローコールを大幅に削減し、非表示オブジェクトのレンダリングを排除するさまざまな高度な GPU 機能が用意されています。これらの機能は連携して動作し、複雑なシーンでの GPU の効率を最大化します。
GPU 常駐ドロワー
GPU 常駐ドロワーは、GPU インスタンシングを自動的に使用して、ドローコールを減らし、CPU 処理時間を解放します。この機能は、同じメッシュを共有するオブジェクトが多数含まれる大きなシーンで最も効果的です。
この機能を有効にする
- Unity のメインメニューで、[Edit] > [Project Settings] > [Graphics] をクリックします。
- [Shader Stripping] セクションで、[Batch Renderer Group Variants] を [Keep All] に設定します。
- デフォルトのレンダリング パイプライン アセット(URP アセット)を見つけます。
- プロジェクトでこのアセットを検索します。
- アセットを右クリックして [プロパティ] を選択します。
- [Renderer List] で、[Universal Renderer] を右クリックして [Properties] を選択します。
- [レンダリング パス] を [Forward+] に設定します。
- URP アセットに戻って選択し、その他アイコンをクリックして [デバッグ] を選択します。
- [GPU Resident Drawer Mode] を [Instanced Drawing] に設定します。
GPU オクルージョン カリング
オクルージョン カリングでは、CPU ではなく GPU を使用して、他のオブジェクトの背後に隠れているオブジェクトを除外します。この機能は、屋内や密集した環境など、オクルージョンが顕著なシーンで最も効果を発揮します。
この機能を有効にする
- Unity のメインメニューで、[Edit] > [Project Settings] > [Graphics] をクリックします。
- [GPU オクルージョン カリング] を有効にします。
- [URP] タブを選択します。
- [Render Graph] セクションで、[Compatibility Mode (Render Graph Disabled)] を無効にします。
バッファの破棄を最適化する
この最適化により、不要な深度バッファ データを破棄し、MSAA カラーバッファを効率的に処理することで、メモリ オペレーションが削減され、パフォーマンスが向上します。
利点
- グラフィック データの不要なコピーと移動を排除します。
- あらゆるケースで GPU レンダリングを高速化します。
この機能を有効にする
- Unity のメインメニューで、[Edit] > [Project Settings] をクリックします。
- [XR プラグイン管理] セクションを開き、[OpenXR] をクリックします。
- [Android] タブを選択します。
- [Android XR] 機能グループを選択します。
- [Android XR Support] の横にある歯車アイコンをクリックします。
[バッファ破棄の最適化(Vulkan)] を有効にします。
前面から背面へのレンダリングを無効にする
フロント ツー バック レンダリングは、シーンで試すことができるレンダリング順序のテストです。Low-Resolution-Z(LRZ)などの最適化と組み合わせると、背景オブジェクトで高コストのフラグメント シェーダーが使用されているオクルージョンが著しいシーンでパフォーマンスの改善に役立つ可能性があります。
ただし、この設定を有効にすると、パフォーマンスが低下する可能性もあります。そのため、デフォルト設定(無効)のままにしておくことをおすすめします。