网格 | 要绘制的网格。 |
子网格索引 | 绘制的网格的哪一部分。这仅适用于由几个材质组成的网格。 |
材质 | 要使用的材质。 |
矩阵 | 对象转换矩阵数组。 |
计数 | 要绘制的实例数。 |
属性 | 要应用的其他材质属性。参见MaterialPropertyBlock。 |
投射阴影 | 确定网格是否应投射阴影。 |
接受阴影 | 确定网格是否应接收阴影。 |
层 | 要使用的图层。 |
摄像头 | 如果是 null (默认值),该网格将在所有摄像机中绘制。否则,它将仅在给定的摄像机中绘制。 |
lightProbeUsage | LightProbeUsage 用于实例。 |
使用 GPU 实例绘制同一网格多次。
类似于 Graphics.DrawMesh,此函数为一帧绘制网格,而无需创建不必要的游戏对象开销。此函数现在已过时。改用 Graphics.RenderMeshInstanced。在想要使用实例化着色器绘制特定次数的相同网格时,使用此函数。Unity 会将实例化的网格作为一个组进行剔除和排序。它创建一个包含所有网格的对齐轴包围盒,计算中心点,然后使用此信息来剔除和排序网格实例。请注意,在剔除和排序组合实例后,Unity 不会按视锥体或烘焙闭塞体进一步剔除单个实例。它也不会对单个实例进行排序以提高透明度或深度效率。
网格的每个实例的转换矩阵应打包到 matrices
阵列中。你可以指定要绘制的实例的数量,或者默认情况下它是 matrices
阵列的长度。如果着色器需要其他每个实例的数据,则应使用 SetFloatArray、SetVectorArray 和 SetMatrixArray 在 MaterialPropertyBlock 参数上创建阵列来提供这些数据。
要使用光照探针渲染实例,可以通过 MaterialPropertyBlock 提供光照探针数据,并使用 LightProbeUsage.CustomProvided 指定 lightProbeUsage
。有关详细信息,请查看 LightProbes.CalculateInterpolatedLightAndOcclusionProbes。
注意:一次最多只能绘制 1023 个实例。
如果材质没有将 Material.enableInstancing 设置为 true,或者当前平台不支持此 API(即如果 GPU 实例化不可用),则会引发 InvalidOperationException。请参阅 SystemInfo.supportsInstancing。
其他资源:Graphics.DrawMesh、Graphics.RenderMeshInstanced。