在较新版本的THREEJS中具有合并几何的高内存使用率

时间:2016-12-29 19:08:47

标签: performance merge three.js mesh

我正在尝试创建一个体素引擎,并且正在合并几何图形以提高性能。我使用this demo作为参考,它可以使用chrome中大约700mb的内存并在我的机器上以60 + fps运行来生成大约120,000个内存。这个演示使用了threejs的第44版,它使用了THREE.GeometryUtils.merge。我的项目正在使用最新版本的threejs(版本83),当我尝试渲染大约50,000个体素(使用geometry.merge合并)时,我使用超过1000mb的内存并且性能正在下降。我使用与上述演示几乎相同的方法。为了确认threejs是问题(而不是我的代码的其他内容),我用版本83替换了演示中使用的三个版本44(并进行了一些小的兼容性调整)并遇到了同样的问题。这是一个已知的问题?我真的不想为我的项目恢复到旧版本的threejs。我能看到的唯一真正的解决方案是切换到旧版本,尝试将r44中的合并代码集成到r83中,或者在github上发布问题并等待它解决,其中没有一个是真正可取的。只是想知道是否还有其他人处理过此事。

1 个答案:

答案 0 :(得分:0)

我设法通过将版本45 Three.GeometryUtils.merge替换为版本44中的版本来确定问题不在于合并功能。这给出了与以前相同的内存问题,因此在发布时更改了其他内容45导致了这个问题。正如所建议的那样,我使用BufferGeometries进行了测试,并且能够达到所需的性能水平(<120 mb内存使用率和120,000个体素),所以我结束了对问题来源的搜索并切换到此方法。