加载PLY文件时,从Geometry转换为BufferGeometry的三个JS无法正常工作

时间:2017-04-12 09:00:22

标签: three.js geometry buffer-geometry

我正在从PLY文件(超过60Mb)加载一个非常复杂的3D模型。在我的项目中,我需要使用轨道控制来移动对象。显然,由于文件很大,一些联谊会的操作速度非常缓慢。为了加快速度,我试图将我的几何体转换为具有以下代码行的Buffer几何体:

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);
    });

但是我收到以下错误:

  

TypeError:无法读取未定义的属性“0”           在DirectGeometry.fromGeometry(three.module.js:12219)           在BufferGeometry.fromGeometry(three.module.js:14307)           在threed-viewer.component.ts:379           在index.js:52           在XMLHttpRequest。 (three.module.js:29263)           在ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask(zone.js:367)           at Object.onInvokeTask(ng_zone.js:264)           在ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask(zone.js:366)           在Zone.webpackJsonp.818.Zone.runTask(zone.js:166)           在XMLHttpRequest.ZoneTask.invoke(zone.js:420)

有什么想法吗?

谢谢,

恐龙

1 个答案:

答案 0 :(得分:0)

发布囚犯849评论(作为答案)以供将来参考:

  

如果我做对了,请查看PLYLoader.js的源代码   几何,回调函数返回,已经是   THREE.BufferGeometry()