首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三个JS:加载大型模型崩溃浏览器

三个JS:加载大型模型崩溃浏览器
EN

Stack Overflow用户
提问于 2017-04-12 11:23:18
回答 1查看 1.9K关注 0票数 1

如果我使用以下代码加载一个小铺层文件(4-10 MB):

代码语言:javascript
运行
复制
this.loader.load('assets/data/GuyFawkesMask.ply', function (geometry) {
      var bufferGeometry = new THREE.BufferGeometry().fromGeometry( geometry );

      console.log(bufferGeometry);

      // Create object
        let object =
            new THREE.Mesh(bufferGeometry,
            new THREE.MeshPhongMaterial(
                {
                    color: 0xFFFFFF,
                    //vertexColors: THREE.VertexColors,
                    shading: THREE.FlatShading,
                    shininess: 0
                })
            );

        _this.add(object);
    });

一切都很好。

如果我加载大文件50MB+,浏览器有时会崩溃,或者如果模型加载成功,那么在某些计算机中,使用轨道控制与对象的交互就会非常缓慢。

我理解3D模型是复杂的野兽,但是你知道是否有优化内存使用的方法,在不抽取文件的情况下在三个js中加载模型,不丢失重要信息的操作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 19:47:14

我也有过类似的问题,对较大的型号。我建议您以小块(例如,一次1mb )流和加载模型。

问题是,Three.js不支持加载块模型。

我为自己做的就是重写一个加载器来处理数据块,并从块构建内部表示。

另一种方法是将场景导出为较小的片段,然后在加载后重新组合它们。

还有第三种可能性,即模型非常复杂。

编辑:好的,我玩了一下,如果你把文件转换成二进制STL,那么它工作得更好,不会崩溃铬,同时保持相同的顶点计数。我将在这里包含到两个转换文件的链接,其中一个是抽取版本(顶点计数减少70%),另一个是原始文件的转换,它们都为我工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43368176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档