我通过调整threejs中的buffer geometry drawcalls example来设置threejs中的粒子系统。我想创建一系列点,但我希望它们是圆形的。
documentation for threejs points表示它接受几何或缓冲几何,但我也注意到有一个circleBufferGeometry。我可以用这个吗? 或者除了使用精灵之外,还有另一种方法可以使这些点变圆吗?我不确定,但似乎loading an image for each particle会导致很多不必要的开销。
那么,简而言之,是否有更高性能或更简单的方法来制作圆形粒子(球体或圆盘)的粒子系统,并且没有精灵?
答案 0 :(得分:1)
Points
对象的几何定义了3D空间中点的存在位置。 不 定义点的形状。点也被绘制为四边形,因此它们总是会成为一个正方形,尽管它们不必以这种方式出现。
您的第一个选择是(正如您所指出的)为每个点加载纹理。我真的没有看到这会如何引入“很多”开销,因为纹理只会加载一次,并且会应用于所有点。但是,我相信你有理由。
您的另一个选择是create your own shader to draw the point as a circle。此方法将点作为正方形,并丢弃圆外的任何片段(多个片段构成像素)。
答案 1 :(得分:1)
如果你想绘制每个"点" /"粒子"作为几何圆,您可以使用THREE.InstancedBufferGeometry
或查看this