Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 三个JS Collada性能问题_Javascript_Three.js_Collada - Fatal编程技术网

Javascript 三个JS Collada性能问题

Javascript 三个JS Collada性能问题,javascript,three.js,collada,Javascript,Three.js,Collada,我有以下代码将collada模型加载到THREE.js,我将其克隆到100个,然后将每个模型添加到场景中,一切正常,但加载后性能变得非常差,尽管它们只有100个对象,我计划为大约100个模型加载大约10000个对象 var loader=new THREE.ColladaLoader(); loader.options.convertUpAxis = true; var gc=new THREE.Object3D(); loader.load("resources/models/274.

我有以下代码将collada模型加载到THREE.js,我将其克隆到100个,然后将每个模型添加到场景中,一切正常,但加载后性能变得非常差,尽管它们只有100个对象,我计划为大约100个模型加载大约10000个对象

    var loader=new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
var gc=new THREE.Object3D();
loader.load("resources/models/274.dae",function(collada){
    for(var i=0;i<100;i++){
        var c=collada.scene.clone();
        c.position.set(i,0,i*Math.random());
        scene.add(c);
    }
},function(xhr){
    var percentComplete = xhr.loaded / xhr.total * 100;
    document.getElementById("sload").innerHTML="Scene, Mountain Downloaded: "+ Math.round(percentComplete, 2) + '%';
});
var-loader=new-THREE.ColladaLoader();
loader.options.convertUpAxis=true;
var gc=new THREE.Object3D();
loader.load(“resources/models/274.dae”,函数(collada){

对于(var i=0;我不是THREEJS专家,但问题难道不是您正在添加整个collada场景,而不仅仅是您需要的模型吗?(collada.scene.clone();)?我认为它看起来只包含一棵树,但它包含了很多不需要的信息,可能会把它搞得一团糟。我认为有一个collada模型加载器。试着理解它是如何完成的:脚本:找到一种只导入所需内容的方法。我记得我曾经遇到过类似的问题,最终解析了一个obj文件,读取了一个所有的顶点和面,并从这些顶点创建一个网格。这可能不是最好的方法,但至少你确定你只加载网格。另一件值得一试的事情是将模型导入blender并从中导出。另外,确保在blender之类的工具中将几何体合并到一个网格中。要做到这一点,请遵循我的说明n这个链接。我有一个430个节点的对象,性能很差。我一把它合并成一个网格,它就作为一个网格对象导入到threejs中,性能非常好。