创建一个具有多个粒子大小的bufferGeometry。最棒的表演?

时间:2015-11-28 19:55:47

标签: javascript three.js webgl

我使用bufferGeometry创建了一个THREE.Point对象来渲染数千个粒子,我使用了PointsMaterial材质。我在运行时更新材质,在普通方形粒子(默认值)和其他一些纹理和颜色之间进行切换,并且工作正常。

当我想要创建不同大小的粒子时,问题就出现了。我不能只设置一个BufferAttribute。我尝试制作一个自定义着色器,Three.js Particles of various sizes但是我无法使它工作,有些可能是三个版本问题?我duno。

所以我想按尺寸对所有粒子进行分组,并为每个粒子大小创建一个bufferGeometry。但我不确定这是最好的方法。这是性能方面的最佳选择吗?或者我是否必须创建自定义着色器才能实现此目标?

Three.js修订版:72

1 个答案:

答案 0 :(得分:0)

this answer中提供了您要执行的操作的示例 - 只需使用示例中的alpha属性值来改变点大小:http://jsfiddle.net/8mrH7/196/

gl_PointSize = 8.0 * alpha; // use alpha to vary point size, instead

three.js r.73