对于大量具有相同几何形状但颜色不同的对象(在我的例子中是图形节点),哪个更有效:
1)创建网格,然后为每个节点克隆网格和网格的材质(使用mesh.traverse
2)为每个节点创建具有克隆材质的新网格
发布于 2019-04-12 09:21:36
通过new
创建对象和通过.clone()
创建对象之间的唯一区别是,后者还复制源对象的所有属性。如果不需要此操作,最好仅通过new
运算符创建网格。
由于您有大量的对象,因此您可能需要考虑使用实例化渲染,以减少应用程序中的绘制调用量。现在,您必须分别绘制每个节点。使用实例化渲染时,会一次绘制所有节点。有几个示例演示了如何使用three.js
进行实例化渲染
https://threejs.org/examples/?q=instancing
使用实例化渲染不是必须的,但如果遇到性能问题,它可能会很有帮助。另一种更容易实现但灵活性较差的选择是将所有网格合并到一个大的单一几何体中,并使用顶点颜色。您将拥有单个几何体、材质和网格对象,但附加的顶点颜色属性将确保节点以不同的方式着色。
three.js R103
https://stackoverflow.com/questions/55646499
复制