我使用旧版本的三个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();