【问题标题】:three.js copy mesh loaded object JavaScript三.js 复制网格加载对象 JavaScript
【发布时间】:2015-01-11 08:47:56
【问题描述】:

我使用 three.js r59,尝试复制加载的模型时遇到问题。我试图实现的是循环并创建几个模型。我会担心稍后将纹理应用于它们..

   for (var i=0; i<5-1; i++){

     var loader = new THREE.OBJLoader( );
     loader.load( 'mod/bookH.obj',function ( object ) {
     object.traverse( function ( child ) {
     if ( child instanceof THREE.Mesh ) {
         child.castShadow = true;
         console.log(i);
         //child.material.map = texture;  //dont need right now

        }

    } );
        //below works
            object.position.set( 1 * 0, 0, 5 );
        scene.add( object );

            //below doesn't work and no error...
            var testMesh = new.THREE.Object3D(object);
            scene.add(testMesh);


    });  
    }
    }

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    如果你想要同一个网格的 N 个实例,你不需要加载它们 N 次;只需加载一次,然后创建 N 个具有相同几何形状的新网格。

    我对类似问题的回答:How to clone collada model in threejs?

    希望对你有帮助

    【讨论】:

    • 我使用了克隆方法而不是 new.THREE.Mesh...我加载的模型是一个 object3D,可以得到网格..我将每个项目中的它推到一个数组中,然后将它添加到场景再次在一个单独的循环中完成......你的方法应该有效,但无论如何都没有谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2014-11-14
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多