1

我目前正在探索优化在 Three.js 中加载/生成大量对象的时间的方法。这些对象的输入是构成 2D 足迹的各个顶点。

我使用的初始方法是THREE.Shape从各个顶点创建对象,然后使用THREE.ExtrudeGeometry将 2D 形状拉入 3D 对象。对所有对象执行此操作大约需要 3500 毫秒。

我探索的第二种方法是使用JSON 模型格式将生成的 3D 对象(从前一种方法)预导出到 JSON 文件中,然后在需要时导入该 JSON 文件,而不是在运行时生成对象。仅此 JSON 表示的导入和加载大约需要 3800 毫秒,这比在运行时生成对象还要长!

我想知道在 Three.js 中加载/生成对象的最快方法是什么。我不知道如何加快THREE.Shape和挤压方法,我不确定为什么 JSON 导入方法这么慢(我认为预先生成几何图形会节省很多时间)。

有没有其他方法可以加快速度?

4

1 回答 1

2

我对你的结果一点也不感到惊讶。我敢打赌,您还可以使用自定义几何图形获得更大的内存占用......

BufferedGeometry 肯定会加快加载自定义几何图形。但我不确定你会比动态生成几何图形更快。生成的好处是您可以为过程设置动画,以便用户看到场景在他们面前栩栩如生。您可以分解您的自定义几何体并执行类似于我们在 Verold Studio 中加载多部分对象时所做的事情,以提供类似的效果,但您将对生成的场景进行更多控制。

我还建议您在基准测试中查看内存、CPU 和网络速度。针对您的特定配置进行优化可能会导致您走上一条获得出色性能的道路,但对您的用户却不是。在方法上肯定存在权衡,您可以在服务器上进行更多的预计算以换取更多的网络流量等。确保您独立测量所有因素 - 而不仅仅是配置的速度。

于 2013-04-08T13:36:58.387 回答