indices | 定义网格面的索引数组。 |
topology | 网格的拓扑结构,例如:三角形、线条、四边形、点等。请参见 MeshTopology。 |
submesh | 要修改的子网格。 |
calculateBounds | 在设置索引后计算子网格的边界框。Unity 默认执行此操作。当您想要使用现有的边界框并降低设置索引的 CPU 成本时,请使用 false。 |
baseVertex | 添加到所有顶点索引的可选顶点偏移量。 |
设置子网格的索引缓冲区。
子网格表示使用单个 Material 渲染的一系列三角形(或具有不同 MeshTopology 的索引)。当网格与具有多个材质的 Renderer 一起使用时,您应该确保每个材质有一个子网格。
SetTriangles 和 triangles 始终将网格设置为由三角形面组成。使用 SetIndices 创建由线条或点组成的网格。
可以使用 baseVertex
参数实现大于 65536 个顶点的网格,同时使用 16 位索引缓冲区,只要每个子网格索引在其自身的 65535 值范围内即可。例如,如果传递给 SetIndices 的索引缓冲区包含索引 10、11、12,并且 baseVertex
设置为 100000,则实际上将使用顶点 100010、100011 和 100012 进行渲染。
请注意,网格默认使用 16 位 indexFormat,即索引缓冲区中支持的最大值为 65535(即使使用 int[] 输入数据)。为了使用更大的索引缓冲区值,您应该首先将 indexFormat 设置为 IndexFormat.UInt32。
如果要更新 Mesh 的边界框,请在更新所有子网格后调用 Mesh.RecalculateBounds。
其他资源:subMeshCount、MeshTopology、indexFormat。
indices | 定义网格面的索引数组。 |
indicesStart | 要从输入数组中获取的第一个元素的索引。 |
indicesLength | 要从输入数组中获取的元素数量。 |
topology | 网格的拓扑结构,例如:三角形、线条、四边形、点等。请参见 MeshTopology。 |
submesh | 要修改的子网格。 |
calculateBounds | 在设置索引后计算子网格的边界框。Unity 默认执行此操作。当您想要使用现有的边界框并降低设置索引的 CPU 成本时,请使用 false。 |
baseVertex | 添加到所有顶点索引的可选顶点偏移量。 |
设置子网格的索引缓冲区,使用输入数组的一部分。
此方法的行为就像您使用从 indicesStart
索引开始并具有给定 indicesLength
长度的数组调用 SetIndices 一样。生成的子网格将具有 indicesLength
数量的顶点索引。