在Three.js中加载大量对象的最快方法?

时间:2013-04-08 12:57:41

标签: three.js webgl

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

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

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

我想知道在Three.js中加载/生成对象的最快方法是什么。我对如何加速THREE.Shape和挤压方法感到茫然,我不确定为什么JSON导入方法如此缓慢(我假设预生成几何会节省大量时间)

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

1 个答案:

答案 0 :(得分:2)

我对你的结果并不感到惊讶。我敢打赌,你也可以通过自定义几何体获得更大的内存占用......

BufferedGeometry肯定会加快加载自定义几何体的速度。但我不确定你会比在飞行中生成几何图形更快。这一代的好处是你可以为这个过程设置动画,让用户看到场景在他们面前变得生动。您可以打破自定义几何体并执行类似于我们在Verold Studio中加载多部分对象时所执行的操作,以产生类似的效果,但您可以对生成的场景进行更多控制。

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