matrix | 使用するトランスフォーム(変換)マトリックス |
material | 使用するマテリアル |
shaderPass | 使用するシェーダーのパス (あるいはすべてに -1 を渡します。) |
topology | プロシージャルジオメトリのトポロジー |
properties | レンダリングの前にだけ適用するマテリアルプロパティーを追加します。 MaterialPropertyBlock を参照してください。 |
bufferWithArgs | Draw Arguments のバッファ |
argsOffset | Draw argument があるバッファのバイトオフセット |
"draw procedural geometry" コマンドを追加。
When the command buffer executes, this will do a draw call on the GPU, without any vertex or index buffers.
The amount of geometry to draw is read from a ComputeBuffer. Typical use case is generating arbitrary amount
of data from a ComputeShader and then rendering that, without requiring a readback to the CPU.
シェーダーが ComputeBuffer バッファから任意のデータを読むことができる DirectX 11 の低レベルで便利です。
Buffer with arguments, bufferWithArgs
, has to have four integer numbers at given argsOffset
offset:
vertex count per instance, instance count, start vertex location, start instance location.
This very much maps to Direct3D11 DrawInstancedIndirect / OpenGL ES 3.1 glDrawArraysIndirect function (on OpenGL ES 3.1 the last argument is reserved and therefore not used).
頂点シェーダーで、通常、いくつかのバッファからデータをフェッチするのに SV_VertexID や SV_InstanceID の入力変数を使用します。
See Also: DrawProcedural, MaterialPropertyBlock, Graphics.DrawProceduralIndirect, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.