Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


DrawProcedural

Add a "draw procedural geometry" command.
Read time 3 minutesLast updated 5 days ago

Definition

DrawProcedural(Matrix4x4, Material, int, MeshTopology, int, int, MaterialPropertyBlock)

Add a "draw procedural geometry" command.
public void DrawProcedural(Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int vertexCount, int instanceCount, MaterialPropertyBlock properties)

Parameters

matrix

Transformation matrix to use.

material

Material to use.

shaderPass

Which pass of the shader to use (or -1 for all passes).

topology

Topology of the procedural geometry.

vertexCount

Vertex count to render.

instanceCount

Instance count to render.

Additional material properties to apply just before rendering. See MaterialPropertyBlock.

Remarks

When the command buffer executes, this will do a draw call on the GPU, without any vertex or index buffers. This is mainly useful on Shader Model 4.5 level hardware where shaders can read arbitrary data from ComputeBuffer buffers.
In the vertex shader, you'd typically use the SV_VertexID and SV_InstanceID input variables to fetch data from some buffers.
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.

DrawProcedural(GraphicsBuffer, Matrix4x4, Material, int, MeshTopology, int, int, MaterialPropertyBlock)

Add a "draw procedural geometry" command.
public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount, MaterialPropertyBlock properties)

Parameters

indexBuffer

The index buffer used to submit vertices to the GPU.

matrix

Transformation matrix to use.

material

Material to use.

shaderPass

Which pass of the shader to use (or -1 for all passes).

topology

Topology of the procedural geometry.

indexCount

Index count to render.

instanceCount

Instance count to render.

Additional material properties to apply just before rendering. See MaterialPropertyBlock.

Remarks

When the command buffer executes, this will do a draw call on the GPU, without a vertex buffer. This is mainly useful on Shader Model 4.5 level hardware where shaders can read arbitrary data from ComputeBuffer buffers.
In the vertex shader, you'd typically use the SV_VertexID and SV_InstanceID input variables to fetch data from some buffers.

DrawProcedural(GraphicsBuffer, Matrix4x4, Material, int, MeshTopology, int, int)

Add a "draw procedural geometry" command.
public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount, int instanceCount)

Parameters

indexBuffer

The index buffer used to submit vertices to the GPU.

matrix

Transformation matrix to use.

material

Material to use.

shaderPass

Which pass of the shader to use (or -1 for all passes).

topology

Topology of the procedural geometry.

indexCount

Index count to render.

instanceCount

Instance count to render.

Remarks

When the command buffer executes, this will do a draw call on the GPU, without a vertex buffer. This is mainly useful on Shader Model 4.5 level hardware where shaders can read arbitrary data from ComputeBuffer buffers.
In the vertex shader, you'd typically use the SV_VertexID and SV_InstanceID input variables to fetch data from some buffers.

DrawProcedural(GraphicsBuffer, Matrix4x4, Material, int, MeshTopology, int)

Add a "draw procedural geometry" command.
public void DrawProcedural(GraphicsBuffer indexBuffer, Matrix4x4 matrix, Material material, int shaderPass, MeshTopology topology, int indexCount)

Parameters

indexBuffer

The index buffer used to submit vertices to the GPU.

matrix

Transformation matrix to use.

material

Material to use.

shaderPass

Which pass of the shader to use (or -1 for all passes).

topology

Topology of the procedural geometry.

indexCount

Index count to render.

Remarks

When the command buffer executes, this will do a draw call on the GPU, without a vertex buffer. This is mainly useful on Shader Model 4.5 level hardware where shaders can read arbitrary data from ComputeBuffer buffers.
In the vertex shader, you'd typically use the SV_VertexID and SV_InstanceID input variables to fetch data from some buffers.