Подтвердить что ты не робот

Three.js - Регулировка непрозрачности отдельных частиц

Я пытаюсь изменить непрозрачность частиц как функцию их расстояния от плоскости.

Эта проблема описывает мою проблему, и ответ год назад был по существу "вы не можете". Непрозрачность, по-видимому, является параметром материала, а не элемента, и, следовательно, непрозрачность отдельных частиц невозможна.

Что-то изменилось, есть ли способ, которым я мог бы это достичь? Если возможна индивидуальная окраска частиц, я полагаю, что это не вне пределов досягаемости.

Приветствия

4b9b3361

Ответ 1

ParticleSystem был переименован в PointCloud, а затем в Points.

Да, вы можете создать облако точек и динамически изменять альфа-значение каждого цвета частиц.

В three.js вы можете сделать это, установив для материала Point Cloud значение ShaderMaterial, имеющее атрибут, равный желаемому альфа-значению для каждой частицы.

Если ShaderMaterials, вершинные шейдеры и фрагментарные шейдеры новы для вас, вот действительно простой скрипт, который реализует облако точек с динамическими альфаами: http://jsfiddle.net/8mrH7/266/.

EDIT: обновленная скрипка

three.js r.84