Я вернулся на второй вопрос по .points.На этот раз интересно, как изменить непрозрачность с 0 до 1, а затем обратно в пределах определенных пиксельных расстояний от излучателя.
var particleCount = 14,
particles = new THREE.Geometry(),
pMaterial = new THREE.PointsMaterial({
map: new THREE.TextureLoader().load("x.png"),
blending: THREE.multiplyBlending,
flatShading: true,
size: 40,
transparent: true,
depthTest: true,
sizeAttenuation: true,
opacity: 1
});
var particleSystem;
Мое основное недоразумение заключается в том, что, хотя я и дал ему прозрачность, я не могу изменить значение в обновлении, которое я сделал для своего эмиттера.
function update() {
//particleSystem.rotation.y += 0.01;
pCount = particleCount;
while (pCount--) {
particle = particles.vertices[pCount];
(Это где куча проверок для того, где находятся точки)
particleSystem.geometry.verticesNeedUpdate = true;
particleSystem.rotation.y += (Math.random()*0.001)
}
Цикл рендеринга:
renderer.setAnimationLoop(() => {
update();
composer.render(scene, camera);
});
Я хочу, чтобы он исчезал и не появлялся в сцене для20 или около того пикселей, а затем исчезают. Но я не совсем уверен, как изменить непрозрачность, так как не будет работать частиц.opacity + = 0.1.
Редактировать: я также не уверен в размере какЯ хочу сделать с ним то же самое, но с 20 до 40, я мог бы основывать это в зависимости от того, является ли он кординатом.Тем не мение;Я также не уверен, как постепенно это изменить.
Извините, если это очевидный ответ, дублирующий вопрос и любая помощь, которую я получу.Любые альтернативные методы того, что я видел, находятся в альтернативной структуре, которую я не понимаю, или в массиве, в котором я не знаю, как поместить в то, что я хочу.
(Заранее спасибо)