2017-04-12 9 views
0

非常に複雑な3DモデルをPLYファイル(60Mb以上)からロードしています。私のプロジェクトでは、軌道制御を使ってオブジェクトを移動する必要があります。明らかに、大きなファイルのために、操作はいくつかの喫煙者で痛いほど遅くなります。少し物事をスピードアップするために、私は次のコード行をバッファの形状に私のジオメトリを変換しようとしています:PLYファイルをロードするときに幾何学からBufferGeometryに変換するTHREE JSが機能しない

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: Cannot read property '0' of undefined at DirectGeometry.fromGeometry (three.module.js:12219) at BufferGeometry.fromGeometry (three.module.js:14307) at threed-viewer.component.ts:379 at index.js:52 at XMLHttpRequest. (three.module.js:29263) at ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask (zone.js:367) at Object.onInvokeTask (ng_zone.js:264) at ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask (zone.js:366) at Zone.webpackJsonp.818.Zone.runTask (zone.js:166) at XMLHttpRequest.ZoneTask.invoke (zone.js:420)

任意のアイデア?

は、

ディノ

+0

PLYLoader 'のソースコードに探して。 js'の場合、コールバック関数が返す 'geometry'は既に' THREE.BufferGeometry() 'です。 – prisoner849

+0

ああ、そうだよ! – Dino

答えて

0

をいただき、ありがとうございますただ、今後の参考のために(答えとして)prisoner849コメントを投稿:私は右のそれを取得する場合、

If I get it right, looking into the source code of PLYLoader.js, the geometry, which the callback function returns, is already of THREE.BufferGeometry()

関連する問題