回答:
技術的には、「バッチ処理」とは、複数のアクションとそのデータを1つのデータ構造に入れて、すべてを個別にではなく一度に実行できるようにすることです。
最新のGPUの最大のボトルネックは、その処理能力ではなく、CPU上で実行されるゲームとGPU間の通信です。GPUに送信されるデータの各パッケージにはオーバーヘッドがありますが、小さなパッケージのオーバーヘッドは大きなパッケージのオーバーヘッドと同じくらい大きいため、100個の小さなパッケージではなく1つの大きなパッケージを送信する場合に大きな利益になります。そして、それがバッチ処理です。小さいパッケージすべてから1つの大きなパッケージを作成します。
スプライトごとのデータ量が途方もなく少ないため、バッチ処理はスプライトに特に役立ちます。4つの頂点と4つのtex座標。そのため、小さなパッケージのオーバーヘッドは比例して大きくなります。
スプライトバッチ処理は、1回の描画呼び出しで複数のスプライトをGPUに送信する方法です。
他の回答のどちらも、これを行うことの本当のポイントを指摘していません:状態変化とGPUコマンド送信の最小化。それぞれ独自のテクスチャを持つ100個のスプライトを描画する場合、ハードウェアは一度に1つのスプライトしか処理できません。数十または数千のシェーダーコアはほとんど使用されておらず、GPUはテクスチャスイッチのレンダリング状態の設定に非常に多くの時間を費やしています。
すべてのスプライト画像をアトラスに配置すると、描画に必要な状態の変化を最小限に抑えることができます。ドライバーは、ハードウェアを完全に利用できるように、スプライト描画要求を単一のバッチに自動的に結合することもできますが、これは保証されていません。
スプライトアトラスを使用してから、すべてのスプライトクワッドが満たされた単一のVBOを作成し、そのデータで単一の描画要求を行うと、ハードウェアが完全に利用され、すべてのスプライトが並行してレンダリングされることが保証されます。
スプライトのバッチ処理はまさにそれを行います:単一の描画呼び出しでGPUに送信される単一のアトラスを使用して、できるだけ多くのスプライトを単一のVBOに入れ、GPUの使用を最大化します。
スプライトのバッチ処理を実行する他の方法(ハードウェアのインスタンス化、ジオメトリシェーダーの使用など)、およびその他の利点がありますが、その要点は、バッチ処理が描画呼び出しごとに複数のオブジェクトを描画することです。