第24回 草原の大量描画とGPU Instancing
最後は草原を例に、同じ形を多数描く場合を考えます。第23回の一つの描画処理の負荷から、描画命令の準備・共有データ・個体データへ視点を広げます。
完成見本:草原
同じ草株を大量に配置し、8×8mの草原を描いたUnityの画面
この見本は、1種類の草のMeshとMaterialを共有し、株ごとの位置・回転・大きさを変えて1,881株を配置しています。検証用のWindows Editorでは、草を4回のGPU Instancing描画にまとめられました。描画命令をまとめても、見えている葉の頂点や画素を処理する仕事は残ります。
授業では草のモデルと風のシェーダーを開始素材として用意し、共有するデータ、株ごとに異なるデータ、見える範囲を順に調べます。完成画像と動画は見本の描画記録です。処理時間は実習する環境で比較します。
配布プロジェクト
この回に対応する配布プロジェクトは準備中です。本文の数値例と確認問題で原理を学べます。Unityでの実習を始める際は、配布ファイルで対応する環境の公開状況を確認してください。
この回のゴール
草株で共有するMesh・Materialと株ごとの配置を区別し、SRP BatcherとGPU Instancingの役割や描画負荷を条件をそろえて比較できる。
今回のポイント
Draw Callは描画を依頼する命令です。Meshは形、MaterialはShaderとその設定を参照します。Instanceは、共有する形を使って配置された個体を指します。
各ステップでは、入力値と計算結果を記録してから条件を変えます。最後のステップで一連の処理をまとめ、用途や比較条件に応じた判断を行います。
授業の進め方
終了時に残す記録
条件・適用の証拠・計測・画質をそろえた比較を、後期のまとめとして残します。
途中で判断できなくなった場合は、ステップ一覧から該当する入力・計算へ戻り、基準の例と一つずつ比較します。