0

我正在尝试克隆 ThreeJS Object3D 模型。我在这里和 GitHub 上找到了各种代码,但没有什么对我有用。下面的代码部分来自How to clone an object3d in Three.js?

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 回答