1

这个问题搭载了以下问题:

Three.js - 缓冲几何粒子,需要对系统中的随机粒子组进行动画处理

如何快速更新大的BufferGeometry?

我正在开始一个新项目,该项目将随时在场景中包含数万个粒子。这个概念是,将有看起来像星系的粒子簇散布在整个场景中。有时我需要为星系及其数千个粒子设置动画。我可以在几何图形仍在缓冲区内时执行此操作吗?

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

过去,我一直使用tween.js为场景中移动的对象设置动画。是否可以提取补间所需的点,转换为vector3,重新定位它们,并在每个更新循环上渲染?

4

1 回答 1

2

如果您想为数以万计的粒子设置动画,则在 GPU 上执行您的模拟,并在顶点着色器中置换您的粒子的位置。你可以用谷歌搜索的流行词是“GPGPU”。

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

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

这是一个使用粒子的例子:http: //www.neveroccurs.com/lab/three.js/gpu_particles/? particles=256

三.js r.69

于 2014-12-18T04:20:51.153 回答