Javascript Three.js模型加载导致浏览器暂时冻结
在过去的几周里,我一直在使用Three.JS lib加载动画3d模型。 模型和纹理源文件最初是.obj和.mtl,大小约为60 MB 正如你所想象的,装载时间相当长,而且装载导致了冻结。 为了加快速度,我将模型转换为二进制,对象大小现在为15MB~。装载时间现在更快了,但仍然冻结 到目前为止,我试图解决冻结问题:Javascript Three.js模型加载导致浏览器暂时冻结,javascript,three.js,Javascript,Three.js,在过去的几周里,我一直在使用Three.JS lib加载动画3d模型。 模型和纹理源文件最初是.obj和.mtl,大小约为60 MB 正如你所想象的,装载时间相当长,而且装载导致了冻结。 为了加快速度,我将模型转换为二进制,对象大小现在为15MB~。装载时间现在更快了,但仍然冻结 到目前为止,我试图解决冻结问题: 网络工作者——似乎不是这样 转换为JSON并使用本机加载程序 转换为二进制 进度条-没有任何帮助 这是代码的加载部分: this.loader = new THRE
- 网络工作者——似乎不是这样
- 转换为JSON并使用本机加载程序
- 转换为二进制
- 进度条-没有任何帮助
this.loader = new THREE.BinaryLoader();
this.showPreloader();
this.loader.load(jsPath, function (geometry, material) {
var object = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(material));
this.scene.add(object);
this.hidePreloader();
if (typeof cb === 'function') {
cb();
}
}.bind(this));
有什么想法吗?您可以使用Chrome CPU评测来查看主线程中是否有任何JavaScript方法被阻塞:我没有代码,所以我不会给出完整的答案,但我知道这已经成功地在WebGL中用于显著缩小模型大小。它们从85MB.obj变为1.5MB.ctm如果你不调用
this.showPreload()
?@Leeft,OpenCTM blender插件不再受支持,OpenCTM在ubuntu更新版本下似乎也无法编译。。您知道其他转换方法吗?从modern.ie获取windows虚拟机(它们在3个月后过期,然后您需要重建或恢复首次启动前创建的快照),并以这种方式在windows上运行?(假设您没有访问windows框的权限)。