将外部几何加载到Three.js中的最佳和最快方法是什么,而不会影响UI

时间:2014-08-29 20:25:21

标签: javascript three.js geometry loader web-worker

目前我正在将很多.obj文件(一起20MB)加载到Three.js中。加载文件时一切正常,但问题是,Three.JS需要大约25秒来加载和处理数据,用户无法与页面交互,这非常令人讨厌。
文件只包含几何图形,没有动画和材质,所以我想知道是否有更好的方法将几何图形加载到Three.JS中。我读了很多关于webworkers和缓冲几何的内容,但直到现在我还没有找到解决问题的明确方法。我希望有人能给我一个提示。

2 个答案:

答案 0 :(得分:4)

尝试examples/js/loaders/ctm/CTMLoader.js,因为它可以非常高效地打包对象。您可以使用http://openctm.sourceforge.net/

中找到的工具转换对象

我不认为你可以在场景中插入模型时避免UI冻结,但OpenCTM应该可以减少问题。还有examples/js/loaders/ctm/CTMWorker.js

实例:http://threejs.org/examples/#webgl_loader_ctmhttp://threejs.org/examples/#webgl_loader_ctm_materials

答案 1 :(得分:-2)

我刚刚开始使用three.js

但我认为这可能有助于你

http://threejs.org/docs/index.html#Reference/Loaders/Loader .addStatusElement()可以用作加载几何的调试工具

关于减少加载时间,本网站解释“使用单个绘图调用绘制多个对象”(但不使用.obj文件) http://www.html5rocks.com/en/tutorials/webgl/million_letters/#toc-efficientwebgl

关于“缓冲几何”,对于“Verold Studio”http://www.verold.com/

,下面问题的答案给出了缓冲几何的简明轮廓。

Fastest method to load a large number of objects in Three.js?

感谢您的建议@Armam 为了感谢你的建议,我取消了我的答案。 (你可以删除这个评论) 如果它不是太麻烦你能告诉我如何重新格式化这个问题,更简洁的事情 https://stackoverflow.com/questions/25312778/i-need-help-understanding-the-math-in-a-three-js-simple-animation

@ spencer7593感谢您的意见,我还没有掌握好问题,但我非常感谢您的建议。