はじめに GPU Instancing を使うと同一メッシュ・マテリアルを使用したオブジェクトを一度に大量に描画することが出来ます。GPU Instancing そのものについてはテラシュールブログさんや公式ドキュメントをご参照ください。 tsubakit1.hateblo.jp docs.unity3d.com 本エントリでは、シェーダ内でどのようにこの GPU Instancing に対応するシェーダが展開されるかの解説を行います。ただ、Unity がここで解説するような細かいことは覚えて置かなくても良いように設計してくれているので、途中の面倒なマクロの展開を追うコードを読むのが飽きたら、最後のまとめだけ読んでみてください。 環境 Unity 2017.4.11f1 ベースとなるコード 以下の基本的なコードをもとにします。ここに色々手を加えてインスタンシング対応にします。 Shader