Three.js: كيفية استنساخ النماذج في البرنامج

تم إنشاؤها على ٢٠ فبراير ٢٠١٢  ·  3تعليقات  ·  مصدر: mrdoob/three.js

مرحبًا ، أريد تحميل نموذج داي في برنامجي ، على سبيل المثال إبريق شاي وأريد الحصول على 10 أقداح شاي في المشهد ، أستخدم وظيفة الاستنساخ على النحو التالي ، ولكن يبدو أن الكائن يشير إلى والده ، ثم يشير إلى نفسه لذا لا يمكنني استنساخه ، كيف يمكنني الحصول على 10 نسخ من الشيء الخاص بي؟

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

التعليق الأكثر فائدة

من فضلك لا تنشر في المواضيع التي أغلقت لسنوات. افتح إصدارًا جديدًا بدلاً من ذلك ، وقدم ملفك dae three.js ورمز

ال 3 كومينتر

يجب أن تكون قادرًا على القيام بشيء مثل هذا:

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 );
}

لم تنجح ، أواجه نفس المشكلة.
هذا هو غرضي collada.scene
image

من فضلك لا تنشر في المواضيع التي أغلقت لسنوات. افتح إصدارًا جديدًا بدلاً من ذلك ، وقدم ملفك dae three.js ورمز

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات