网格使用过多的绘制调用

时间:2018-05-07 19:10:55

标签: javascript three.js

我有一些网格,从blender导入(来自utils文件夹的three.js导出器),它只有3种材质,但它使用了28次绘制调用,为什么会发生这种情况?因为我认为它应该只使用3个绘制调用

mesh image

2 个答案:

答案 0 :(得分:1)

创建单个 ng e2e实例时,将其分配给两个Mesh的数组。 Three.js确实创建了28个绘制调用。

这是由于Material似乎使用的这个群组系统。

BufferGeometry

至于为什么,这将是一个非常好的问题,在github上发布。这不是WebGL应该如何工作的,因为它非常低效。使用两个不同着色器渲染某些几何体所需的最少调用量是两个,而不是二十八个。

答案 1 :(得分:1)

在混合器中,进入编辑模式..选择所有面,然后使用网格 - >排序元素 - >材质命令按材质对面进行分组..然后重新导出。

您可以使用该命令按不同标准排序。它可以非常有用,例如让你的对象从头开始减慢构建......

您可以沿某个方向对元素进行排序,然后在三个.js中随着时间的推移操纵网格上的绘制组以渲染越来越多的面。

HTH