在缓冲测量中补间粒子

时间:2014-12-18 03:43:22

标签: three.js buffer tween particles buffer-geometry

这个问题背负着以下问题:

Three.js - Buffer geometry particles, need to animate random groups of particles in system

How to quickly update a large BufferGeometry?

我正在开始一个新项目,任何时候场景中都会有数以万计的粒子。这个概念是在整个场景中会出现像星系一样的粒子簇。有时我需要为一个星系及其成千上万的粒子制作动画。我可以在几何图形仍在缓冲区内时执行此操作吗?

我正在使用使用PointCloud构建的THREE.BufferGeometry,每个顶点位置都使用Float32Array( numParticles * 3 )设置。

在过去,我总是使用tween.js来动画在场景中移动的物体。是否有可能提取补间所需的点,转换为vector3,重新定位它们,并在每个更新循环上渲染?

1 个答案:

答案 0 :(得分:2)

如果要为成千上万的粒子设置动画,请在GPU上执行模拟,并在顶点着色器中移动粒子的位置。您可以谷歌的流行语是" GPGPU"。

您有很多选择:逻辑可以完全在着色器中,和/或您可以将更新的控制制服传递到着色器,和/或您可以将属性传递给着色器。

这是一个three.js示例:http://threejs.org/examples/webgl_gpgpu_birds.html

以下是使用粒子的示例:http://www.neveroccurs.com/lab/three.js/gpu_particles/?particles=256

three.js r.69