Batched Draw Call (バッチドローコール)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。複数の個別オブジェクトの描画命令を、CPUまたはGPU側で1つの大きなグループに統合し、ドローコールAPIの発行回数を最小限に抑える最適化プロセス。

現実世界での例え:宅配便の荷物を、1件ごとに個別配送するのではなく『大型のコンテナトラック(バッチ)』に満載して一括輸送する効率化

バッチドローコールは、「100個の荷物(オブジェクト)を届ける際、100台の軽トラック(個別ドローコール)を走らせる代わりに、1台の大型コンテナトラック(バッチドローコール)に荷物を満載してまとめて運ぶプロセス」です。道路(CPU-GPU間バス)が軽トラで渋滞するのを防ぎ、1回の運行命令だけで大量の荷物をGPUに一気に送り届けます。トラックの運転手(CPUのレンダースレッド)の手間と疲労は1回分に激減し、ゲーム全体の動作速度が劇的に向上します。

Batched Draw Call (バッチドローコール) concept infographic diagram

図:Batched Draw Call (バッチドローコール)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック

詳細な仕組みと動作原理

Static Batchingを有効にするか、同一シェーダーによるSRP Batcher、同一マテリアルによるGPU Instancingを活用して、描画命令をバッチドローコールに変換・統合します。