第24回 草原の大量描画とGPU Instancing
1 / 4 描画命令とCPU・GPUの処理
このステップの目的
命令を減らしても頂点や画素が消えるわけではないことを学びます。
草原で同じ形を何度も描く
草原の見本は、同じ草株のMeshとMaterialを共有し、株ごとの位置・回転・大きさを変えています。検証用のWindows Editorで1,881株を四つのInstancing描画にまとめた結果は、描画命令と株数が一対一ではない例です。ただし、共有しても見えている草の頂点や画素を処理する仕事がなくなるわけではありません。
一つの物体でも、影や複数Passで複数回描く場合があります。Passは、決められた処理と設定で形を描く一工程です。物体数とDraw Call数が必ず一対一になるとは考えません。比較では色の描画だけか、影も含むかをそろえます。
負荷の場所を調べる
CPU側の命令準備が原因なら、まとめる処理が有効な候補です。画面を覆う半透明の重なりが原因なら、命令だけ減らしても十分に改善しない場合があります。個数を増やした際のCPUとGPUの変化を分けて読みます。
条件を変えた確認
Draw Callが200から20へ減り、CPU時間は6msから3ms、GPU時間は8msのままでした。改善した対象と、まだ判断できない対象を説明してください。
考え方の確認
描画命令の準備などCPU側が改善した可能性があります。GPU時間の改善はこの数値では確認できません。原因の特定には内訳の確認が必要です。
命令数とCPU・GPUの時間を別々に記録します。
チェックリスト
- 物体数・命令数・画素処理量を同じ数として扱わない理由を説明できる。
- 変更した条件と、予測・計算した結果を対応付けて説明できる。