这个问题包含以下问题:
三.js - 缓冲几何粒子,需要对系统中随机粒子组进行动画处理
如何快速更新大型缓冲区几何图形?
我正在启动一个新项目,该项目将随时在场景中包含数万个粒子。 这个概念是,将有看起来像星系的粒子团遍布整个场景。 有时我需要为一个星系及其数千个粒子制作动画。 当几何图形仍在缓冲区内时,是否可以执行此操作?
我使用的是使用 THREE.BufferGeometry
构造的PointCloud
,每个顶点位置都使用 Float32Array( numParticles * 3 )
设置。
过去,我总是使用补间.js来为场景中移动的对象制作动画。 是否可以提取补间所需的点,转换为 vector3,重新定位它们并在每次更新循环中渲染?
对数万个粒子进行动画处理,请在GPU上执行模拟,并在顶点着色器中替换粒子的位置。你可以谷歌的流行语是"GPGPU"。
您有很多选择:逻辑可以完全在着色器中,和/或您可以将更新的控件统一传递给着色器,和/或您可以将属性传递给着色器。
下面是一个.js示例:http://threejs.org/examples/webgl_gpgpu_birds.html
下面是一个使用粒子的示例: http://www.neveroccurs.com/lab/three.js/gpu_particles/?particles=256
三.js 69