Command Buffer (コマンドバッファ)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。Unityの標準レンダリング処理の合間に、開発者が任意のカスタム描画命令(マテリアル適用、テクスチャコピーなど)を差し込んで描画パスを自在に拡張する機能の解説。
現実世界での例え:工場の製造ラインの合間に『特別なトッピングや加工工程』を一時的にねじ込む臨時スタッフの手動指示書
コマンドバッファは、「ベルトコンベア式の組み立てラインに対して、特定の箇所(例:組み立て後、塗装前)で『この特殊なシールをここに貼れ』『このパーツのコピーを隣のトレイに置け』と、臨時の作業指示書(コマンドのリスト)を割り込ませて実行させるハック手法」です。全体の組み立てフローを一切止めることなく、狙ったタイミングにミリ秒単位で完全に制御されたカスタム処理を挟み込むことができます。
図:Command Buffer (コマンドバッファ)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック
詳細な仕組みと動作原理
C#側で `CommandBuffer` クラスのインスタンスを作成し、描画命令をリストとして蓄積して、パイプラインの特定のイベント(例:不透明描画後)に追加(AddCommandBuffer)します。