1

我正在通过调整threejs中的缓冲区几何drawcalls示例在threejs中设置粒子系统。我想创建一系列点,但我希望它们是圆形的。

threejs 点的文档说它接受几何或缓冲区几何,但我也注意到有一个circleBufferGeometry。我可以用这个吗?或者除了使用精灵之外,还有其他方法可以使积分变得圆润吗?我不确定,但似乎为每个粒子加载图像会导致很多不必要的开销。

那么,简而言之,有没有一种更高效或更简单的方法可以在没有精灵的threejs中制作圆形粒子(球体或圆盘)的粒子系统?

4

2 回答 2

2

对象的几何形状Points定义了点在 3D 空间中的位置。它没有定义点的形状。点也被绘制为四边形,所以它们总是会是一个正方形,尽管它们不必以这种方式出现。

您的第一个选择是(正如您所指出的)为每个点加载纹理。我真的不明白这会如何引入“大量”开销,因为纹理只会加载一次,并将应用于所有点。但是,我相信你有你的理由。

您的另一个选择是创建自己的着色器以将点绘制为圆形。该方法以点为正方形,丢弃圆外的任何碎片(多个碎片组成一个像素)。

于 2017-09-14T17:24:54.410 回答
2

如果你想把每个“点”/“粒子”画成一个几何圆,你可以使用THREE.InstancedBufferGeometry或者看看这个

于 2017-09-15T00:36:08.453 回答