mesh | 要绘制的 Mesh。 |
submeshIndex | 要绘制网格的哪个子集。这只适用于由若干种材质构成的网格。 |
material | 要使用的 Material。 |
matrices | 对象变换矩阵的数组。 |
count | 要绘制的实例数。 |
properties | 要应用的其他材质属性。请参阅 MaterialPropertyBlock。 |
castShadows | 网格是否应投射阴影? |
receiveShadows | 网格是否应接受阴影? |
layer | 要使用的 Layer。 |
camera | 如果为 /null/(默认值),将在所有摄像机中绘制网格。否则,仅在给定摄像机中绘制网格。 |
lightProbeUsage | 实例的 LightProbeUsage。 |
使用 GPU 实例化多次绘制同一网格。
类似于 Graphics.DrawMesh,该函数为一帧绘制多个网格,并且没有创建不必要的游戏对象的开销。
如果您需要使用实例化的着色器多次绘制同一网格,则可以使用该函数。这些网格不会被视锥体或烘焙遮挡物做进一步的剔除处理,也不进行排序以提高透明度或 Z 效率。
应将网格的每个实例的变换矩阵打包到 matrices
数组中。可以指定要绘制的实例数,也可以使用默认值(matrices
数组的长度)。如果着色器需要其他的每实例数据,应通过使用 SetFloatArray、SetVectorArray 和 SetMatrixArray 在 MaterialPropertyBlock 参数上创建数组的方式提供。
要使用光照探针渲染实例,请通过 MaterialPropertyBlock 提供光照探针数据,并使用 LightProbeUsage.CustomProvided 指定 /lightProbeUsage/。有关详细信息,请参阅 LightProbes.CalculateInterpolatedLightAndOcclusionProbes。
注意:一次最多只能绘制 1023 个实例。
如果材质的 Material.enableInstancing 未设置为 true,或当前平台不支持该 API(即,如果 GPU 实例化不可用),则会抛出 InvalidOperationException。请参阅 SystemInfo.supportsInstancing。
另请参阅:DrawMesh。