デモ:ドローコールと SRP Batcher

Tutorial

intermediate

+0XP

60 mins

Unity Technologies

デモ:ドローコールと SRP Batcher

組み込みのユニバーサルレンダーパイプラインを使用する際は、Unity のスクリプタブルレンダーパイプラインバッチャーも使用できます。このデモでは、SRP Batcher でテストを行い、この機能を有効化する前と後でパフォーマンスを比較します。

1. SRP Batcher

前のチュートリアルでは、Unity の組み込みのユニバーサルレンダーパイプライン(URP)シェーダーを使用して、モバイルでのパフォーマンスを最適化する方法を学びました。所定のシェーダーを使用するメリットの 1 つは、Unity の SRP Batcher(スクリプタブルレンダーパイプラインバッチャー)にアクセスできることです。このチュートリアルでは、このバッチャーによるパフォーマンスの上昇幅を測定します。

2. 始める前に

サンプルデモを含むコースプロジェクトをまだダウンロードしていない場合は、こちらからダウンロードします。ポップアップが表示されたら、「Shaders and Materials Demo」をクリックするか、Project ビューでサンプルシーンを開きます(「Assets」>「3 Shaders & Materials」>「Scene」>「Scene 3」)。シーンをダウンロードして開いたら、エディターの再生モードに入るか、モバイル端末向けにシーンをビルドして、プロファイラーでプロファイリングします。

3. 観察対象

サンプルシーンは、アニメーション化されたナイトと、平面に適用された草、背景のナイトが見えるように透明シェーダーを使用して炎をシミュレーションを行ったパーティクル効果など、いくつかの動く要素で構成されています。

各シェーダーは、URP に組み込まれているノードベースのシェーダーツールであるシェーダーグラフを使用して実装されています。そのため、シェーダーグラフを使用して作成されたシェーダーの多くは、URP の機能にも対応しています。そうした機能の 1 つが SRP Batcher です。

所定の UniversalRenderPipelineAsset(「Assets」>「Content」>「Settings」)内で、SRP Batcher のオン、オフを切り替えることができるオプションがあります。「Advanced」で SRP Batcher をトグルします。

SRP Batcher をトグルしてオンにする際は、「Profiler」ビューの「Statistics」ウィンドウ「Rendering」セクションの「Vertices」グラフを確認するようにしましょう。FPS は上昇してしまいますが、処理される三角形と頂点の数は劇的に減少します。このデモにおいてのオブジェクトでは、URP 対応のシェーダーを使用しているため、レンダーパイプラインによって、関連するすべてのジオメトリデータが自動的にバッチ処理され、処理されるデータの量が減少しています。

このため、ゲームを一時停止し、SRP Batcher をオンまたはオフにしてフレームデバッガーを有効にすることもできます。SRP Batcher を有効にすると、ドローコールが大幅に減少するのがわかります。

4. まとめ

Unity では、シェーダーやマテリアルを簡単に調整、設定できるため、わずかなパフォーマンスコストで印象的なビジュアルエフェクトを生み出すことができます。ユニバーサルレンダーパイプラインの機能と、そうした機能に対応している組み込みのシェーダーを利用することで、ターゲットとするモバイル端末の限られたリソースを、最大限に有効活用できます。次のプロジェクトでは、ライトを使用し、URP と組み合わせて、パフォーマンス重視でモバイルアプリケーションに雰囲気やムードを付加する方法を学びます。

Complete this Tutorial