我有一些网格,从blender导入(来自utils文件夹的three.js导出器),它只有3种材质,但它使用了28次绘制调用,为什么会发生这种情况?因为我认为它应该只使用3个绘制调用
答案 0 :(得分:1)
创建单个 ng e2e
实例时,将其分配给两个Mesh
的数组。 Three.js确实创建了28个绘制调用。
这是由于Material
似乎使用的这个群组系统。
BufferGeometry
至于为什么,这将是一个非常好的问题,在github上发布。这不是WebGL应该如何工作的,因为它非常低效。使用两个不同着色器渲染某些几何体所需的最少调用量是两个,而不是二十八个。
答案 1 :(得分:1)
在混合器中,进入编辑模式..选择所有面,然后使用网格 - >排序元素 - >材质命令按材质对面进行分组..然后重新导出。
您可以使用该命令按不同标准排序。它可以非常有用,例如让你的对象从头开始减慢构建......
您可以沿某个方向对元素进行排序,然后在三个.js中随着时间的推移操纵网格上的绘制组以渲染越来越多的面。
HTH