一种具有实例化渲染支持的特殊版本的Mesh。你可以使用 InstancedMesh 来渲染大量具有相同几何体与材质、但具有不同世界变换的物体。 使用 InstancedMesh 将帮助你减少 draw call 的数量,从而提升你应用程序的整体渲染性能。
当前的实现需要InstancedMesh和其它3D物体间不共享材质。
WebGL / instancing / dynamic
WebGL / instancing / modified
WebGL / instancing / performance
WebGL / instancing / scatter
WebGL / instancing / raycast
geometry — 一个 BufferGeometry 的实例。
material — 一个 Material 的实例。默认为一个新的 MeshBasicMaterial 。
count — 实例的数量
See the base Mesh class for common properties.
实例的数量。被传入到构造函数中的count表示mesh实例数量的最大值。 你可以在运行时改变这个数值到 [0, count] 区间的一个整数。
如果你需要比原先的数量更多的实例数量,你需要创建一个新的InstancedMesh。
Represents the colors of all instances. null by default. You have to set its needsUpdate flag to true if you modify instanced data via .setColorAt().
表示所有实例的本地变换。 如果你要通过 .setMatrixAt() 来修改实例数据,你必须将它的 needsUpdate 标识为 true 。
See the base Mesh class for common methods.
Frees the internal resources of this instance.
index: The index of an instance. Values have to be in the range [0, count].
color: This color object will be set to the color of the defined instance.
Get the color of the defined instance.
index: 实例的索引。值必须在 [0, count] 区间。
matrix: 该4x4矩阵将会被设为已定义实例的本地变换矩阵。
获得已定义实例的本地变换矩阵。
index: The index of an instance. Values have to be in the range [0, count].
color: The color of a single instance.
Sets the given color to the defined instance. Make sure you set .instanceColor.needsUpdate to true after updating all the colors.
index: 实例的索引。值必须在 [0, count] 区间。
matrix: 一个4x4矩阵,表示单个实例本地变换。
设置给定的本地变换矩阵到已定义的实例。 请确保在更新所有矩阵后将 .instanceMatrix.needsUpdate 设置为true。