我在哪里放置平面几何的 sin() 公式来创建 three.js 粒子波?
Where do i place the sin() formula for plane geometry to create a three.js particle wave?
picture我试图在 three.js 中创建粒子波效果,但在尝试不同的方法时我失去了理智。任何人都知道我能做什么?我的代码在下面。
// geomatry, material, mesh
const geometry = new THREE.PlaneBufferGeometry(5, 5, 64, 64)
const material = new THREE.PointsMaterial({color: 'aqua',
size: 0.007})
const particles = new THREE.Points(geometry, material);
particles.rotation.x = 181;
scene.add(particles);
// Lighting
const light = new THREE.PointLight(0xffffff, 2)
light.position.set(2, 3, 4);
scene.add(light);
const render = function() {
requestAnimationFrame(render)
// particles.rotation.z += .005
renderer.render(scene,camera);
}
const positions = geometry.attributes.position.array;
let k = 0;
setInterval(() => {
for (let i = 0; i < positions.length; i += 3) {
positions[i + 2] = Math.sin(((i+2)%(65*3)) / 20+k) * 0.5;
}
k+=0.1;
geometry.attributes.position.needsUpdate = true;
}, 60);
picture我试图在 three.js 中创建粒子波效果,但在尝试不同的方法时我失去了理智。任何人都知道我能做什么?我的代码在下面。
// geomatry, material, mesh
const geometry = new THREE.PlaneBufferGeometry(5, 5, 64, 64)
const material = new THREE.PointsMaterial({color: 'aqua',
size: 0.007})
const particles = new THREE.Points(geometry, material);
particles.rotation.x = 181;
scene.add(particles);
// Lighting
const light = new THREE.PointLight(0xffffff, 2)
light.position.set(2, 3, 4);
scene.add(light);
const render = function() {
requestAnimationFrame(render)
// particles.rotation.z += .005
renderer.render(scene,camera);
}
const positions = geometry.attributes.position.array;
let k = 0;
setInterval(() => {
for (let i = 0; i < positions.length; i += 3) {
positions[i + 2] = Math.sin(((i+2)%(65*3)) / 20+k) * 0.5;
}
k+=0.1;
geometry.attributes.position.needsUpdate = true;
}, 60);