Skip to content
第24回 草原の大量描画とGPU Instancing

2 / 4 データを共有する描画方式 ​

このステップの目的

三つの方式の目的を、名前だけでなく扱うデータから比較します。

設定の準備を減らす ​

SRP Batcherは、互換性のあるShaderなどの条件で、描画間の設定準備を効率化する仕組みです。多数の物体が一つのDraw Callになった、という意味ではありません。材質ごとのデータを効率よく扱うことが中心です。

形をまとめて使う ​

GPU Instancingでは、同じMeshやMaterialを使う複数の個体を、個体ごとの変換などとともにまとめて描きます。設定へチェックを付けるだけで常に適用されるとは限りません。描画経路、Shaderの対応、他の最適化との優先関係を確認します。

草原の見本では、草株ごとにGameObjectを作らず、同じMeshとMaterialに複数の変換行列を渡して描画しています。これは草の形と材質を共有しながら、株の配置だけを変える例です。

Static Batchingは静的な形のデータをまとめる方式で、変換済み頂点を保持するためメモリが増える場合があります。動かす必要がある物体へ無条件に選びません。方式の名前を覚えるより、何を共有し何を固定するかを比較します。

条件を変えた確認 ​

「Materialの設定準備を効率化する」「同じMeshを多数の配置で描く」の二つを、SRP BatcherとGPU Instancingへ対応付けます。適用できたか確認する方法も挙げます。

考え方の確認

前者はSRP Batcher、後者はGPU Instancingの役割に対応します。実際の適用はShader・Material・Rendererの条件を確認し、Frame Debuggerの描画記録で調べます。設定を有効にしただけで適用済みとは判断しません。

共有したいデータと、確認に使う記録を残します。

チェックリスト
  • SRP Batcherの設定準備とInstancingの個体描画を区別できる。
  • 変更した条件と、予測・計算した結果を対応付けて説明できる。