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