为ThreeJS粒子设置映射图像的颜色

时间:2013-12-12 05:11:11

标签: three.js

最初我使用的是ParticleSystem,但我发现Raycaster无法使用它。所以我现在修改我的代码只是使用单独的Particle个对象。

问题是,我似乎无法设置我映射到粒子的图像的颜色,就像我能够使用ParticleSystem一样。

我尝试了以下内容:

texture = THREE.ImageUtils.loadTexture("ball.png");

material = new THREE.ParticleBasicMaterial({

    size : 10,
    color: 0x00C1BF,
    map : texture,
    transparent : true,

});

// Generate some random points...
for (var i = 0; i < pointCount; i++) {

    var particle = new THREE.Particle(material);

    particle.position.x = Math.random() * (max - min) + min;
    particle.position.y = Math.random() * (max - min) + min;
    particle.position.z = Math.random() * (max - min) + min;
    particle.scale.x = particle.scale.y = particle.scale.z = 3;

    plot.add(particle);

}

ball.png的颜色保持不变。如果我注释掉我正在映射到点的图像,颜色就会发生变化。但它不适用于映射图像。当我使用ParticleSystem时,在我生成点的for循环内,我添加了这个:

colors[i] = new THREE.Color(0xffffff);
colors[i].setHSL((x + 1000 ) / 2000, 1, 0.5);

然后在循环外设置particleSys.colors = colors;。这改变了点的颜色,但这似乎不适用于Particle

我讨厌用这样的问题来讨厌社区,但我真的很感激任何指导。非常感谢,一如既往! :)

另外,这里是我正在使用的ball.png的链接:http://threejsdoc.appspot.com/doc/three.js/examples/textures/sprites/ball.png

0 个答案:

没有答案