воскресенье, 25 августа 2013 г.

PF Toolbox 3 (Data Operator) - Particle Size By Texture

Как сделать размер частицы по текстуре в PF Toolbox 3 (с 2014 уже встроен по дефолту)
Сердцем нетворка, да по сути и всего тулбокса 3 является могучая нода Geometry которая может семплить геометрию в окрестностях партикла на предмет разных аттрибутов этой самой геометрии - цвета, нормалей и т.п. Соответственно в ноде Geometry надо указать что запрашиваем point color. После этого ноде надо собственно указать какой объект мы семплим и партиклы как точки в которых он будет замерять колор. Объект заводится в систему нодой Select Object.  Партиклы заводятся в систему как ни странно тоже нодой Geometry, только уже в режиме Clothest Point By Surface. На первый взгляд это не имеет никакого смысла и, если бы я думал логически, то я бы пытался завести партиклы в систему каким нибудь Input Standart (и безуспешно, т.к. он может заводить только конкретные аттирбуты партиклов - велосити, скейл, позишен и тп., а вот сами партиклы как тип данных - нет).  Поэтому партиклы заводятся именно так - это я в примерах видел. Случай, когда мы рождаем партиклы на поверхности и потом ищем ближайшие к этой же самой поверхности партиклы, выглядит странно типа масло маслянное, НО! Мы ведь можем рождать на одном объекте, а семплить аттрибуты с совершенно другого. Это открывает массу возможностей (тут должен быть линк на видео с примером возможностей но линк проебан в пучине веков).
Далее все просто. Мы получили колор, а это тип вектор (RGB в случае колора). А на выход надо подать размер (в PF это scale), который тип флоат (тип real по понятиям тулбокса). Соответственно можно просто вычислить длину этого вектора (в случае ргб вектора длина это что то типа яркости - luminance), это делается через function\length. Либо можно выбрать конкретный цвет - взять ноду Convert\Vector-->Real и пикнуть нужную компоненту (R, G или B).
В ноде Function усть удобная фича - post factor - это просто умножение текущего значения. Иногда надо просто умножить текущее значение, тогда берешь function, снимаешь галку Использовать второй операнд, в операциях выбираешь Identity (типа не делать ничего), и просто крутишь пост фактор. В конце полученное значение просто выводится через Output Standart\ Average Scale
Кстати Frost принимает Scale как Radius Channel - и если включить соответствующую опцию то получим корректный меш.

Комментариев нет:

Отправить комментарий