Instanced Drawing (インスタンス描画 / GPU Instancing)は、ゲームグラフィックスのレンダリングや最適化(テクニカルアート)において極めて重要となる技術用語です。GPUのハードウェア機能を利用し、同じ3Dメッシュの複製(例:数万本の草原の草、数千の兵士など)を、1回限りのドローコールで個別の位置、角度、色(Structured Buffer等)を割り当てながら超並列で一括描画する最適化技術の解説。

現実世界での例え:同じコピー(草のモデル)を1本ずつ手作業でコピーして個別にトラックで現場に届けるのをやめ、1枚の『完成されたスタンプ(メッシュデータ)』と『スタンプを押す何万箇所の座標リスト(位置配列)』を現場に送り、GPUスタンプ機が1ミリ秒で何万回も同時にスタンプを押しまくる一斉複製プリント

インスタンス描画は、「同じ形(3Dメッシュ)のオブジェクトを大量に複製して並べる際、CPUからGPUに対して『この草をここに描け』という命令を何万回も送るのを完全に廃止し、『草の金型(メッシュデータ)』と『それを配置する何万件の座標の住所リスト』を1回の命令でGPUにドカンと送り、GPUの超高速な複製スタンプ機能(インスタンシング機能)を使って、並列で何万個もの草をその場に一瞬で『コピペ描画』する究極の並列大量コピー技術」です。CPUの通信渋滞(ドローコールボトルネック)が完全に消滅するため、見た目の限界を突破した超高密度な大自然や大軍勢を驚異的な軽さで構築できます。

Instanced Drawing (インスタンス描画 / GPU Instancing) concept infographic diagram

図:Instanced Drawing (インスタンス描画 / GPU Instancing)の基本的な処理フローと仕組みを日本語表記で分かりやすく図解したインフォグラフィック

詳細な仕組みと動作原理

マテリアルのインセクターで「Enable GPU Instancing」のチェックをONにするか、C#側で `Graphics.DrawMeshInstanced` または `Graphics.DrawMeshInstancedIndirect` を呼び出し、数万個の位置座標配列を一瞬でGPUに送り込んで1ドローコールで一撃描画します。