对于具有相同几何形状但颜色不同的大量对象(在我的情况下为图形节点),效率更高:
1)创建一个网格,然后为每个节点克隆网格和网格材质(带有mesh.traverse)
2)使用每个节点的克隆材质创建新网格
答案 0 :(得分:0)
通过new
和.clone()
创建对象的唯一区别在于,后者也从源对象复制了所有属性。如果不需要,最好通过new
运算符创建网格。
由于对象很多,因此您可能需要考虑使用实例化渲染,以减少应用程序中的绘制调用次数。现在,您必须分别绘制每个节点。使用实例渲染时,可以一次绘制所有节点。有两个示例演示了three.js
的实例渲染:
https://threejs.org/examples/?q=instancing
不是必须使用实例渲染,但是如果遇到性能问题,它可能会有所帮助。另一个易于实现但灵活性较差的选项是将所有网格合并为一个大型单一几何图形并使用顶点颜色。您将拥有一个单一的几何,材质和网格对象,但是附加的“顶点颜色”属性将确保您的节点被不同地着色。
three.js R103