matrix | 要使用的变换矩阵。 |
material | 要使用的材质。 |
shaderPass | 要使用的着色器通道(或 -1 表示所有通道)。 |
topology | 程序几何体的拓扑结构。 |
properties | 在渲染之前应用的其他材质属性。请参阅 MaterialPropertyBlock。 |
bufferWithArgs | 包含绘制参数的缓冲区。 |
argsOffset | 缓冲区中绘制参数所在的字节偏移量。 |
添加“绘制程序几何体”命令。
当命令缓冲区执行时,这将在 GPU 上执行绘制调用,而无需任何顶点或索引缓冲区。要绘制的几何体数量从 ComputeBuffer 中读取。典型用例是从 ComputeShader 生成任意数量的数据,然后渲染这些数据,而无需回读到 CPU。
这仅在 Shader Model 4.5 级别的硬件上有用,在这些硬件上,着色器可以从 ComputeBuffer 缓冲区读取任意数据。
包含参数的缓冲区 bufferWithArgs
必须在给定的 argsOffset
偏移量处包含四个整数:每个实例的顶点数、实例数、起始顶点位置和起始实例位置。这对应于 Direct3D11 DrawInstancedIndirect 和其他图形 API 上的等效函数。在 4.2 之前的 OpenGL 版本和所有支持间接绘制的 OpenGL ES 版本中,最后一个参数是保留的,因此必须为零。
在顶点着色器中,通常使用 SV_VertexID 和 SV_InstanceID 输入变量从某些缓冲区获取数据。
其他资源:DrawProcedural、MaterialPropertyBlock、Graphics.DrawProceduralIndirect、ComputeBuffer.CopyCount、SystemInfo.supportsComputeShaders。
indexBuffer | 用于将顶点提交到 GPU 的索引缓冲区。 |
matrix | 要使用的变换矩阵。 |
material | 要使用的材质。 |
shaderPass | 要使用的着色器通道(或 -1 表示所有通道)。 |
topology | 程序几何体的拓扑结构。 |
bufferWithArgs | 包含绘制参数的缓冲区。 |
argsOffset | 缓冲区中绘制参数所在的字节偏移量。 |
properties | 在渲染之前应用的其他材质属性。请参阅 MaterialPropertyBlock。 |
添加“绘制程序几何体”命令。
当命令缓冲区执行时,这将在 GPU 上执行绘制调用,而无需顶点缓冲区。要绘制的几何体数量从 ComputeBuffer 中读取。典型用例是从 ComputeShader 生成任意数量的数据,然后渲染这些数据,而无需回读到 CPU。
这仅在 Shader Model 4.5 级别的硬件上有用,在这些硬件上,着色器可以从 ComputeBuffer 缓冲区读取任意数据。
包含参数的缓冲区 bufferWithArgs
必须在给定的 argsOffset
偏移量处包含五个整数:每个实例的索引数、实例数、起始索引位置、基顶点位置和起始实例位置。这对应于 Direct3D11 DrawIndexedInstancedIndirect 和其他图形 API 上的等效函数。在 4.2 之前的 OpenGL 版本和所有支持间接绘制的 OpenGL ES 版本中,最后一个参数是保留的,因此必须为零。
在顶点着色器中,通常使用 SV_VertexID 和 SV_InstanceID 输入变量从某些缓冲区获取数据。
其他资源:DrawProcedural、MaterialPropertyBlock、Graphics.DrawProceduralIndirect、ComputeBuffer.CopyCount、SystemInfo.supportsComputeShaders。