最初我使用的是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