Version: 2023.2
public void DrawProcedural (Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount= 1, MaterialPropertyBlock properties= null);

参数

matrix 要使用的变换矩阵。
material 要使用的材质。
shaderPass 要使用着色器的哪个通道(或选择 -1,表示所有通道)。
topology 程序化几何体的拓扑。
vertexCount 要渲染的顶点数。
instanceCount 要渲染的实例数。
properties 在渲染之前应用的其他材质属性。请参阅 MaterialPropertyBlock

描述

添加“绘制程序化几何体”命令。

当命令缓冲区执行时,将在 GPU 中执行绘制调用,没有任何顶点或索引缓冲区。这主要在 Shader Model 4.5 级别的硬件中有用,其中着色器可以从 ComputeBuffer 缓冲区读取任意数据。

在顶点着色器中,通常使用 SV_VertexID 和 SV_InstanceID 输入变量以从一些缓冲区提取数据。

Note that the draw call will not have any lighting related shader data (light colors, directions, shadows, light and reflection probes etc.) set up. If the shader used by the material uses any lighting related variables, the results are undefined.

另请参阅:DrawProceduralIndirectMaterialPropertyBlockGraphics.DrawProcedural


public void DrawProcedural (GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount, MaterialPropertyBlock properties);
public void DrawProcedural (GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount);
public void DrawProcedural (GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount);

参数

matrix 要使用的变换矩阵。
material 要使用的材质。
shaderPass 要使用着色器的哪个通道(或选择 -1,表示所有通道)。
topology 程序化几何体的拓扑。
indexCount 要渲染的索引数量。
instanceCount 要渲染的实例数。
indexBuffer 用于将顶点提交到 GPU 的索引缓冲区。
properties 在渲染之前应用的其他材质属性。请参阅 MaterialPropertyBlock

描述

添加“绘制程序化几何体”命令。

当命令缓冲区执行时,将在 GPU 中执行绘制调用,没有顶点缓冲区。这主要在 Shader Model 4.5 级别的硬件中有用,其中着色器可以从 ComputeBuffer 缓冲区读取任意数据。

在顶点着色器中,通常使用 SV_VertexID 和 SV_InstanceID 输入变量以从一些缓冲区提取数据。

另请参阅:DrawProceduralIndirectMaterialPropertyBlockGraphics.DrawProcedural