three.js 中 InstancedMesh 和 Object3D.clone() 的区别

difference between InstancedMesh and Object3D.clone() in three.js

我一直在学习如何提高我的 3d 应用程序的性能,有人告诉我可以使用 Object3D.clone() 来复制相同的对象,并且我可以在渲染多个对象时使用 InstancedMesh具有相同几何形状和 material 的对象以提高性能。谁能告诉我它们之间有什么区别。

使用 Object3D.clone() 意味着每个克隆的 3D 对象都使用单独的绘制调用进行渲染。但是,这种方法可能会降低应用程序的性能,因为绘制调用次数是 3D 应用程序的一项重要性能指标。越低越好。

使用 InstancedMesh 有助于减少绘制调用的数量,因为它的所有实例都是通过单个绘制调用渲染的。

因此,您应该尽可能使用实例化渲染,而不是克隆对象。