如何在三个js中使用geometryUtils合并?

时间:2015-04-22 01:36:47

标签: three.js

我使用旧版本的三个js因为某些库兼容的问题。其中没有Geometry.merge函数,我可以使用的是GeometryUtils.merge。

我想要做的是拥有一个网格物体,然后在动画循环中稍后将其他网格物体合并到其中(我的意思是合并它们的几何体)。

结果很有趣,console.log表示顶点已添加到组几何体中。我检查了他们的位置,他们似乎是对的。

然而,它们似乎没有出现在场景中(我看不到它们!)

请注意,我在动画函数之前调用了一次add(),它可以正常工作!

它在动画循环中不起作用。太奇怪!!!

    var group = new THREE.Geometry();
    var mmm = new THREE.Mesh(group, new THREE.MeshNormalMaterial());
    scene.add(mmm);

    var counter = 0;

    function add(){
        for(var i = counter + 1; i < counter + 2 ; i++){
            var geo = new THREE.BoxGeometry(0.1, 0.1, 0.1);
            var m = new THREE.Mesh(geo, material);
            m.position.set(i, i, 0);
            console.log(i)
            group.verticesNeedUpdate = true;
            THREE.GeometryUtils.merge(group, m);
        }
        counter ++;
        console.log(group.vertices.length);
    }

    add();

     var frameCount = 0;
     function animate(){
       requestAnimationFrame(animate);

       if(frameCount !== 0 && frameCount % 60 === 0){
        add();
       }

       frameCount++;
       renderer.render( scene, camera );

     }

     animate();

0 个答案:

没有答案