如何在THREE.js的粒子系统中旋转每个粒子的轴
How to rotate each particle on its axis in a Particle system in THREE.js?
我正在制作一个太空场景,在这个场景中,我使用粒子系统来制作一组小行星,我想让每个小行星绕轴旋转。我正在使用下面的代码来制作一个粒子系统。
var asteroidGeometry = new THREE.Geometry();
for(var i=0;i<=10000;i++)
{
asteroidGeometry.vertices.push( new THREE.Vector3( Math.random()*10000-5000, Math.random()*10000-5000, Math.random()*10000-5000 ) );
}
var asteroidtexture= THREE.ImageUtils.loadTexture("images/asteroids.png");
var asteroidMaterial = new THREE.ParticleBasicMaterial({color: 'white',size:500,map:asteroidtexture,alphaTest: 0.8});
asteroids = new THREE.ParticleSystem(asteroidGeometry,astroidMaterial);
scene.add(asteroids);
如果我要这样做
asteroid.position.x +=0.1;
则会旋转整个系统。是否有可能使每个粒子绕其轴旋转?
THREE.Geometry
实例中的单个顶点可以通过其vertices
数组访问。
我找到了一个教程,解释了如何在粒子系统中独立地动画粒子。以下是update
动画循环的相关部分,并进行了一些小修改。
function update() {
var pCount = particleCount;
while (pCount--) {
var particle = particles.vertices[pCount];
if (particle.position.y < -200) {
particle.position.y = 200;
particle.velocity.y = 0;
}
particle.velocity.y -= Math.random() * .1;
particle.position.addSelf(particle.velocity);
}
particleSystem.geometry.__dirtyVertices = true;
renderer.render(scene, camera);
requestAnimFrame(update);
}
相关文章:
- 知道为什么我的旋转木马不会自动更改图片吗
- 基于粒子的粘弹性流体表面张力问题
- 顺时针旋转Svg元件
- 将鼠标旋转限制为特定的度数
- 旋转后拖动对象
- 禁用旋转木马中的下一个按钮和上一个按钮
- 手动创建旋转活动指示器
- 如何在容器中定位旋转的图像
- 在轴上旋转SVG图像
- 绕z轴旋转时出现iOS陀螺仪错误
- 旋转按钮[HTML][JS]
- 在JS中围绕旋转对象旋转对象
- 围绕圆环的Javascript粒子动画
- Threejs-围绕中心旋转对象
- 旋转木马;启用内容安全策略时无法工作
- 如何在使用Kinetic拖动同一对象后,在旋转动画中保持先前的偏移
- 菜单切换时箭头旋转
- 较大引导转盘中的较小引导转盘-较小引导转盘上的旋转功能问题
- 如何在THREE.js的粒子系统中旋转每个粒子的轴
- 画布旋转粒子