0

ThreeJS Object3D モデルのクローンを作成しようとしています。ここと GitHub でさまざまなコードを見つけましたが、何も機能していません。以下のコードは、Three.js で object3d を複製する方法からの一部です。

var loader = new THREE.ColladaLoader();
loader.load('../Model.dae', function (result) {
    var loadedMesh = // No sure where this comes from

    // Create X of these
    for ( var i = 0; i < 10; i ++ ) {
        var mesh = new THREE.Mesh( loadedMesh.geometry, loadedMesh.material );
        mesh.position.set( i * 100, 0, 0 );
        scene.add( mesh );
    }
}

空欄を埋めるのを手伝ってくれませんか?

4

1 に答える 1

2

これはうまくいきました:

var loader = new THREE.ColladaLoader();
loader.load('../Turn.dae', function colladaReady(result) {
    var piece = result.scene.children[0];
    for (var i = 0; i < 10; i++) {
        var newPiece = new THREE.Object3D();

        for (var j = 0; j < piece.children.length; j++) {
            newPiece.add(new THREE.Mesh(piece.children[j].geometry, piece.children[j].material));
        }

        newPiece.position.set(i * 100, 0, 0);
        newPiece.scale.set(30, 30, 30);
        scene.add(newPiece);
    }

    renderer.render(scene, camera);
});

そのため、単一のメッシュを取得する代わりに、メッシュのグループを取得しました。私はこれが初めてなので、これが私が見た他のすべての回答と異なる理由がわかりません。dae ファイルは、Sketchup から直接エクスポートされました。これを行う方が簡単/より良い方法があるかどうか知りたいです。

于 2012-09-23T02:00:23.280 に答える