我使用bufferGeometry创建了一个THREE.Point对象来渲染数千个粒子,我使用了PointsMaterial材质。我在运行时更新材质,在普通方形粒子(默认值)和其他一些纹理和颜色之间进行切换,并且工作正常。
当我想要创建不同大小的粒子时,问题就出现了。我不能只设置一个BufferAttribute。我尝试制作一个自定义着色器,Three.js Particles of various sizes但是我无法使它工作,有些可能是三个版本问题?我duno。
所以我想按尺寸对所有粒子进行分组,并为每个粒子大小创建一个bufferGeometry。但我不确定这是最好的方法。这是性能方面的最佳选择吗?或者我是否必须创建自定义着色器才能实现此目标?
Three.js修订版:72
答案 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