はじめに
UnityのGPUインスタンシング初心者の皆さんこんにちは。完全理解シタモノです。
だんだん暖かくなってきましたね。そろそろ「Mesh生成しまくるのめんどくね? Graphicsの関数勉強すんべ」みたいな気持ちになってきたのではないかと思います。
しかしGraphicsの関数は似た名前の物が多く「どれ使えばええねん!!」となってしまうと思います。そこで関数を見分けるキーワードを解説しましょう!
Render vs Draw
一緒だけどDrawは古くていずれ消えます。
ただNow系は生き残るかもしれません。
Mesh vs Procedural vs Primitive
Meshは入力されたメッシュを描写します。
残り二つは入力されたトロポジ(三角形とか点とか)を描写します。
Indexed
頂点座標情報(mesh.vertices)は1つもいらないけど、SV_Indexの情報は指定したい、そのためにMeshを作るのはいやだ、そんなあなたにこの関数。Index情報を指定するバッファを用意しています。
Indirect
日本語で間接的、という意味です。
投稿した瞬間にご覧になった皆さんすみません。間違ってました。
描写shaderの関数呼び出し入力を詳細に制御できる関数らしいです。
Now
これらにはmaterialを指定するものがありません。では使われるシェーダーはどうやって指定されるの!? 今のでしょ! というわけで今使われてるシェーダー情報をそのまま使うみたいです。別々の関数で呼び出したいけどSetPassCallは増やしたくないみたいな感じで使うのでしょう。きっと。