非常に複雑な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)
任意のアイデア?
は、
ディノ
PLYLoader 'のソースコードに探して。 js'の場合、コールバック関数が返す 'geometry'は既に' THREE.BufferGeometry() 'です。 – prisoner849
ああ、そうだよ! – Dino