版本: Unity 6 (6000.0)
语言英语
  • C#

CommandBuffer.DrawProcedural

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每一个修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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 上执行绘制调用,而无需任何顶点或索引缓冲区。这主要在 着色器模型 4.5 级别的硬件上很有用,因为着色器可以从 ComputeBuffer 缓冲区读取任意数据。

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

请注意,绘制调用将不会设置任何与光照相关的着色器数据(光照颜色、方向、阴影、光照和反射探测器等)。如果材质使用的着色器使用任何与光照相关的变量,则结果是不确定的。

其他资源: 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 上执行绘制调用,而无需顶点缓冲区。这主要在 着色器模型 4.5 级别的硬件上很有用,因为着色器可以从 ComputeBuffer 缓冲区读取任意数据。

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

其他资源: DrawProceduralIndirectMaterialPropertyBlockGraphics.DrawProcedural