Javascript Threejs多重网格动画

Javascript Threejs多重网格动画,javascript,animation,three.js,Javascript,Animation,Three.js,我对threejs非常陌生,我创建了一个for循环来绘制400个圆柱体。一切正常,它们被调用到场景中并正确渲染。当我去设置对象的动画时,400个对象中只有一个出现旋转。如何旋转所有气缸 代码: for(var j=0;j

我对threejs非常陌生,我创建了一个for循环来绘制400个圆柱体。一切正常,它们被调用到场景中并正确渲染。当我去设置对象的动画时,400个对象中只有一个出现旋转。如何旋转所有气缸

代码:

for(var j=0;j<400;j++){
abgeometry2=新的三圆柱几何体(1,5,8,4);
abmesh2=新的三点网格材质({颜色:0x3B170B,
线框:假});
mesh2=新的三网格(abgeometry2,abmesh2);
mesh2.position.x=Math.random()*400-200;
mesh2.position.y=Math.random()*400-200;
mesh2.position.z=Math.random()*400-200;
场景。添加(网格2);
}
在动画中我放置:
mesh2.rotation.z+=0.06

我知道我可能在做一些愚蠢的事情,但我对threejs不太熟悉。

你只对最后一个圆柱体应用旋转,因为它们在循环过程中都被分配到
mesh2

试着这样做:

var numCylinders = 400;

var cylinders = [];

var geo = new THREE.CylinderGeometry (1, 5, 8, 4);
var mesh = new THREE.MeshPhongMaterial({color: 0x3B170B, wireframe: false });

for (var i = 0; i < numCylinders; i++){
    var curCylinder = new THREE.Mesh(geo, mesh);

    curCylinder.position.x = Math.random() * 400 - 200;
    curCylinder.position.y = Math.random() * 400 - 200;
    curCylinder.position.z = Math.random() * 400 - 200;

    scene.add(curCylinder);

    cylinders.push(curCylinder);
}

var render = function () {
    requestAnimationFrame( render );

    for (var i = 0; i <numCylinders; i++){
        cylinders[i].rotation.z += 0.06;
    }

    renderer.render(scene, camera);
};

render();
var numcylinds=400;
var=[];
var geo=新的三圆柱几何体(1,5,8,4);
var mesh=new THREE.MeshPhongMaterial({颜色:0x3B170B,线框:false});
对于(变量i=0;i对于(var i=0;i您仅将旋转应用于最后一个圆柱体,因为它们在循环过程中都被指定给
mesh2

试着这样做:

var numCylinders = 400;

var cylinders = [];

var geo = new THREE.CylinderGeometry (1, 5, 8, 4);
var mesh = new THREE.MeshPhongMaterial({color: 0x3B170B, wireframe: false });

for (var i = 0; i < numCylinders; i++){
    var curCylinder = new THREE.Mesh(geo, mesh);

    curCylinder.position.x = Math.random() * 400 - 200;
    curCylinder.position.y = Math.random() * 400 - 200;
    curCylinder.position.z = Math.random() * 400 - 200;

    scene.add(curCylinder);

    cylinders.push(curCylinder);
}

var render = function () {
    requestAnimationFrame( render );

    for (var i = 0; i <numCylinders; i++){
        cylinders[i].rotation.z += 0.06;
    }

    renderer.render(scene, camera);
};

render();
var numcylinds=400;
var=[];
var geo=新的三圆柱几何体(1,5,8,4);
var mesh=new THREE.MeshPhongMaterial({颜色:0x3B170B,线框:false});
对于(变量i=0;i