Three.js: Comment cloner des modèles dans le programme

Créé le 20 févr. 2012  ·  3Commentaires  ·  Source: mrdoob/three.js

bonjour, je veux charger un modèle dae dans mon programme, par exemple une théière et je veux avoir 10 théières dans la scène j'utilise la fonction clone comme suit, mais l'objet semble faire référence à son parent, puis se référer à lui-même donc je ne peux pas le cloner, comment puis-je avoir 10 copies de mon objet ?

var dae;
var dae = [];
var loader = new THREE.ColladaLoader();
    loader.options.convertUpAxis = true;
    loader.load( 'teapot.dae',function colladaReady( collada ) {
        dae = collada.scene;
        for(var i = 0;i < 10;++i){
            daes[i] = clone(dae);
        }
    });
}
function clone(obj){
    if(obj == null || typeof(obj) != 'object')
        return obj;
    var temp = new Object();//obj.constructor(); // changed
    for(var key in obj)
        temp[key] = clone(obj[key]);
    return temp;
}
Question

Commentaire le plus utile

Merci de ne pas poster sur des sujets fermés depuis des années. Ouvrez plutôt un nouveau numéro, fournissez votre fichier dae et le code three.js correspondant.

Tous les 3 commentaires

Vous devriez pouvoir faire quelque chose comme ceci :

var geometry = collada.scene.children[ 0 ].geometry;
var material = collada.scene.children[ 0 ].material;

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

Cela n'a pas fonctionné, je rencontre le même problème.
c'est mon objet collada.scene
image

Merci de ne pas poster sur des sujets fermés depuis des années. Ouvrez plutôt un nouveau numéro, fournissez votre fichier dae et le code three.js correspondant.

Cette page vous a été utile?
0 / 5 - 0 notes