topology | プロシージャルジオメトリのトポロジー |
bufferWithArgs | Draw Arguments のバッファ |
argsOffset | Draw argument があるバッファのバイトオフセット |
GPU に完全なプロシージャルジオメトリを描画します。
DrawProceduralIndirect does 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.
This is only useful on DirectX 11 or OpenGL Core level hardware where shaders can read
arbitrary data from ComputeBuffer buffers.
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).
この呼び出しは Graphics.DrawMeshNow のようにすぐに実行されることに注意してください。現在のレンダーターゲット設定と変換行列と現在のシェーダーパス設定を使用します。
CommandBuffers にも同様の機能があります。 CommandBuffer.DrawProceduralIndirect を参照してください。
See Also: Graphics.DrawProcedural, ComputeBuffer.CopyCount, SystemInfo.supportsComputeShaders.