0

我正在从 PLY 文件(超过 60Mb)加载一个非常复杂的 3D 模型。在我的项目中,我需要使用轨道控制来围绕物体移动。显然,由于文件很大,某些计算机的操作速度非常慢。为了加快速度,我尝试使用以下代码行将我的几何图形转换为缓冲区几何图形:

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:无法在 index.js 处的 Threed-viewer.component.ts:379 处的 BufferGeometry.fromGeometry (three.module.js:14307)处的 DirectGeometry.fromGeometry (three.module.js:12219)处读取未定义的属性“0” :52 在 XMLHttpRequest。(three.module.js:29263) 在 ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask (zone.js:367) 在 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)

任何想法?

谢谢,

迪诺

4

1 回答 1

0

只是张贴囚犯849评论(作为答案)以供将来参考:

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

于 2017-04-12T11:10:29.353 回答