是否可以在Three.JS中的多个对象中使用单个MeshFaceMaterial?

时间:2015-05-04 18:51:46

标签: three.js

我正在解析并加载一个3d对象文件(类似于ColladaLoader的操作)。它包含多个对象,并且许多单个对象在不同的​​面上具有多种材质。所以,我使用MeshFaceMaterial。到目前为止没问题。

但是,少数对象会重复使用其中的材料。是否适合创建单个MeshFaceMaterial并在所有对象中使用它?每个文件大约有120个对象。我担心的是,如果我沿着这条路走下去,它可能会影响性能(例如过度的绘制调用,或者每个对象的每种材料可能分配内存?),因为大多数对象都使用自己独特的材料。或者,这是一个过分关注的问题,渲染器是否适合成熟,这不是一个问题?在线文档仅提及共享几何,而不是整个共享的Three.Mesh对象。

1 个答案:

答案 0 :(得分:0)

按照建议使用renderer.info,我能够看一下绘制调用,我很高兴地报告它们是相同的,无论你是使用单个共享的MeshFaceMaterial,还是每个对象使用一个。这并不是说可能存在其他性能损失,并且在明确区分对象以保持分离方面似乎是合乎逻辑的,但对于存在某些交叉的用例,这不是问题。