如何在GPUParticleSystem Three.js中更改粒子颜色?

时间:2018-03-29 13:36:38

标签: javascript three.js webgl shader

我可以更改spawn选项颜色,但仍然有白色颗粒(如基本粒子产生颜色?)。我试图在白色THREE.scene中添加黑色粒子,问题是当我使用白色场景背景时,粒子系统的生成选项颜色消失/变为白色。

  // options passed during animate() | particleSystem.spawnParticle(options)
  // particle color is now 0x3174a5 with the "white base color"

  options = {
    position: new THREE.Vector3(),
    positionRandomness: .3,
    velocity: new THREE.Vector3(),
    velocityRandomness: .5,
    color: 0x3174a5,
    ...
  };

现在,如果我将选项''color'属性更改为0x000000,则只剩下“白色基色”。

当我将场景背景更改为白色时,无法看到粒子。

scene.background = new THREE.Color( 0xcccccc ); // grey background

当场景颜色为灰色(类似于0xcccccc)时,场景颜色看起来像是粒子系统顶部的叠加层。

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

上述白色是添加剂混合的结果。以下代码应该产生您想要的视觉输出:

particleSystem.particleShaderMat.blending = THREE.SubtractiveBlending;