three.js 中 InstancedMesh 和 Object3D.clone() 的区别
difference between InstancedMesh and Object3D.clone() in three.js
我一直在学习如何提高我的 3d 应用程序的性能,有人告诉我可以使用 Object3D.clone() 来复制相同的对象,并且我可以在渲染多个对象时使用 InstancedMesh具有相同几何形状和 material 的对象以提高性能。谁能告诉我它们之间有什么区别。
使用 Object3D.clone()
意味着每个克隆的 3D 对象都使用单独的绘制调用进行渲染。但是,这种方法可能会降低应用程序的性能,因为绘制调用次数是 3D 应用程序的一项重要性能指标。越低越好。
使用 InstancedMesh
有助于减少绘制调用的数量,因为它的所有实例都是通过单个绘制调用渲染的。
因此,您应该尽可能使用实例化渲染,而不是克隆对象。
我一直在学习如何提高我的 3d 应用程序的性能,有人告诉我可以使用 Object3D.clone() 来复制相同的对象,并且我可以在渲染多个对象时使用 InstancedMesh具有相同几何形状和 material 的对象以提高性能。谁能告诉我它们之间有什么区别。
使用 Object3D.clone()
意味着每个克隆的 3D 对象都使用单独的绘制调用进行渲染。但是,这种方法可能会降低应用程序的性能,因为绘制调用次数是 3D 应用程序的一项重要性能指标。越低越好。
使用 InstancedMesh
有助于减少绘制调用的数量,因为它的所有实例都是通过单个绘制调用渲染的。
因此,您应该尽可能使用实例化渲染,而不是克隆对象。