材质 | 材质。 |
绑定 | 包围你打算绘制的实例的包围体。 |
拓扑 | 过程几何的拓扑。 |
vertexCount | 渲染的顶点数。 |
instanceCount | 渲染的实例数。 |
camera | 如果为 null (默认值),该网格将绘制在所有摄像机中。否则,它将仅在给定的摄像机中渲染。 |
properties | 准备绘制该网格之前,要应用到材质的附加材质属性。请参见 MaterialPropertyBlock。 |
castShadows | 确定网格是否可以投射阴影。 |
receiveShadows | 确定网格是否可以接收阴影。 |
layer | 图层。 |
此函数现已废弃。对于非索引渲染,请改用 Graphics.RenderPrimitives。对于索引渲染,请使用 Graphics.RenderPrimitivesIndexed。在 GPU 上绘制过程几何。
此函数现已废弃。对于非索引渲染,请改用 RenderPrimitives。对于索引渲染,请使用 Graphics.RenderPrimitivesIndexed。
DrawProcedural 在没有顶点或索引缓冲区的情况下在 GPU 上调用 Draw。如果着色器需要顶点缓冲区,则会根据平台发生以下情况:如果已声明顶点缓冲区但编译器能够优化它,则会发生正常的 DrawProcedural 调用。如果编译器无法优化顶点缓冲区声明,则这会转换成使用模拟的顶点缓冲区注入后的正常网格绘制调用。后一种选择具有性能开销,因此在使用 DrawProcedural 时不建议在着色器中声明顶点输入。这主要适用于 着色器模型 4.5 级硬件,在该硬件中,着色器可以从 ComputeBuffer 缓冲区读取任意数据。
CommandBuffer 中还有类似的功能,请参阅 CommandBuffer.DrawProcedural。
对于非索引渲染: public static void DrawProcedural(Material material, Bounds bounds, MeshTopology topology, int vertexCount, int instanceCount = 1, Camera camera = null, MaterialPropertyBlock properties = null, ShadowCastingMode castShadows = ShadowCastingMode.On, bool receiveShadows = true, int layer = 0)
对于索引渲染(使用 GraphicsBuffer 索引缓冲区): public static void DrawProcedural(Material material, Bounds bounds, MeshTopology topology, GraphicsBuffer indexBuffer, int indexCount, int instanceCount = 1, Camera camera = null, MaterialPropertyBlock properties = null, ShadowCastingMode castShadows = ShadowCastingMode.On, bool receiveShadows = true, int layer = 0)
其他资源: Graphics.RenderPrimitives、Graphics.RenderPrimitivesIndexed、Graphics.DrawProceduralIndirect、SystemInfo.supportsInstancing。
材质 | 材质。 |
绑定 | 包围你打算绘制的实例的包围体。 |
拓扑 | 过程几何的拓扑。 |
indexBuffer | 用于将顶点提交给 GPU 的索引缓冲区。 |
instanceCount | 渲染的实例数。 |
indexCount | 要渲染的索引数量。 |
camera | 如果为 null (默认值),该网格将绘制在所有摄像机中。否则,它将仅在给定的摄像机中渲染。 |
properties | 准备绘制该网格之前,要应用到材质的附加材质属性。请参见 MaterialPropertyBlock。 |
castShadows | 确定网格是否可以投射阴影。 |
receiveShadows | 确定网格是否可以接收阴影。 |
layer | 图层。 |
使用索引缓冲区在 GPU 上绘制过程几何体。
使用 GraphicsBuffer.Target.Index 目标标记来创建索引缓冲区。