Не одним дисплейсментом едины — Капли в Particle Flow.

Сегодня расскажу про способ создания капель после дождя на окнах, с использованием Particle Flow. Способ примечателен тем, что после настройки можно легко изменять паттерн, а также количество тех или иных капель. Для пользователей Vray этот способ будет еще и экономнее по ресурсам, чем тот-же дисплейсмент, если использовать Vray Instancer.

Нам понадобится несколько смоделеных видов капель. Я сделал их следующим образом:

1) создаем бокс и применяем модификатор spherify.

2) Выделяем половину сферы или чуть меньше и выравниваем в плоскость.

3) немного изменяем форму двигая точки с включенным soft selection.

4) повторяем все несколько раз, пока не получим набор из 3-4 капель — этого будет достаточно.

Далее создаем PF Source и открываем в нем particle view.

Я объясню принцип, и для экономии вашего времени приложу файл с настроенным нодом, для выравнивания капель относительно поверхности нашего стекла ( будет ниже в статье, достаточно примерджить в сцену файл и нод появится в окне particle view )

Подготовим генерацию партиклов:

1) заходим в нод Birth — и выставляем emit start -2, можно и любое другое отрицательное значение — это всего лишь означает что наши частицы начнут генерацию с -2 кадра, чтоб быть готовыми уже к 0 кадру. Ну и emit stop ставим 0 — на нулевом кадре мы и завершаем нашу генерацию.

2) Заходим в нод Speed — ставим везде 0 т.к нам не требуется движение для статичного кадра.

Итак, теперь основное:

1 ) Для начала мы добавим в наш event нод position object ( отвечает за размещение частиц на объекте — на нашем стекле ).

2) В нем, в окно Emitter objects добавим наше стекло, для этого нажимаем кнопочку add и выбираем стекло во вьювпорте кликом мышки.

3) Включим галочку Lock on emitter — чтоб частицы не разлетались из нашего PF Source, а генерировались только по стеклу, которое и является эмиттером.

4) В свитке Location выбираем из выпадающего меню surface т.к мы хотим размножить частицы по поверхности, а не внутри объема, или каким либо иным способом. Ведь наши капли находятся только с одной стороны стекла.

5) включаем галочку Density by material ( поговорим об этом чуть ниже, т.к это связано с материалом нашего стекла ).

6) В свитке if location is invalid — ставим галочку delete particles — в дальнейшем это удалит все партиклы которые ошибочно возникли в местах исключенных из генерации маскированием.

7) Берем файл с нодом выравнивания ( прикреплен к посту в группе, под статьей  ), мерджим в сцену, далее он появляется у нас где-то рядом с нашим event в окне particle view, называется Align_particles ( пометил синим куда его нужно поместить — перетягиваем его в список нодов event ). Важно чтоб он шел после нода rotation.

8) В ноде rotation — обязательно ставим Orientation Matrix — speed space, иначе выравнивание не будет работать.

»»»»» Небольшое примечание: Принцип одинаковый, но реализация для каждого рендера немного может отличаться. Чтоб проверить правильно ли выровнялись наши капли, например для Vray, пока наших частиц не так много, мы можем добавить нод shape instance — выбрать одну из наших капель в нем чтоб подменить частицы на нее, далее спустится в нод Display и поставить в нем тип Geometry — чтоб наши частицы отображались во вьювпорте геометрией. Так мы сможем увидеть правильно ли выровнялись наши частицы. Если же нет, то смотрим по какой из осей нужно развернуть их. В моем случае — это было 90 градусов по X. В ноде rotation поворачиваем на нужный градус, по нужной оси. Далее для Vray, нод shape instance можно удалить т.к удобнее использовать Vray instancer в дальнейшем ( об этом чуть ниже ). И не забываем в ноде Display, псоле корректировок, обратно поставить отображение на дотс или любой другой тип, который не нагружает наш вьювпорт«««««

9) Можно добавить нод Scale для рандомизации размера частиц. Можно в ноде rotation повысить Divergence — для рандомизации вращения, но при этом надо не забывать что наши капли могут вращаться рандомно только по одной оси т.к они находятся на плоскости, и мы не хотим чтоб они проникали через нее под странными углами. Поэтому, можно включить Restrict Divergence to axis — и поставить единичку в нужную ось, по которой мы хотим рандомизировать вращение. Другие оси при этом останутся не тронутыми.

Таким образом наша система частиц готова. В ноде birth увеличиваем amount до нужного значения ( зависит от того сколько капель вам нужно )

Осталось разобраться с материалом который контролирует маскирование — В 5 пункте мы включили density by material — эта функция говорит нашим частичкам использовать материал поверхности как карту плотности. Можно подумать — о какой карте речь, если наше стекло прозрачное? Но для этого есть функция Use sub material в которой можно указать ID другого материала. Поэтому мы сделаем для нашей поверхности мульти-материал, в котором материал с ID 1 будет материалом нашего стекла, а следующие материалы под номерами 2,3,4 и т.д будут любыми материалами в диффузию которых мы поместим наши черно-белые маски для частиц. Соответственно в ID сабматериала, в нашем ноде position object, мы ставим ID того материала, который хотим использовать как маску.

Вот как это выглядит:

Я не буду подробно останавливаться на самих масках т.к основная цель показать принцип. Лишь покажу их пример:

Теперь можно использовать Vray instancer — он заменяет наши частицы на геометрию. Его плюс в том, что можно использовать множество объектов для инстансирования, и множество систем частиц.

1) Source objects — тут нужно добавить объекты которые мы хотим инстрансировать.

2) Particles — сюда добавляем нашу систему частиц.

Перед визуализацией не забываем набросить на капли отдельный материал. Я сделал обычный рефрактивный материал с коэффициентом IOR 1.33 ( коэффициент воды при температуре от 0 до 20 градусов )

Для картинки в шапке я использовал 5 систем частиц. Одну для имитации конденсата — очень мелких капель, другие для крупных и средних капель. Все системы использовали разные маски, для более интересного и достоверного рисунка.

Этот способ лишь один из многих. Главные преимущества — это рандомизация и детализация:

1) можно быстро сменить маску в мульти-материале и частицы перераспределятся.

2) можно не боятся крупных планов, т.к все капли это не фейк, а реальная геометрия.

О минусах говорить не буду, т.к очень субъективно, и зависит от рендера и машины на которой это все будет визуализировано.

А как вы делаете капли?

particleflowraindropletsleaking

Комментарии (31)

+7
VladimirMorr
Очень интересный и необычный способ. Лично я делаю в coronalayeredmtl. В базе: настройка запотевшего стекла. В смешивание: настройка капель через карту нормали. В маске: карта капель.
0
slam_k
Тоже неплохой способ. Просто иногда сложно добиться именно того эффекта который хочется картами. По крайней мере у меня так
+1
hogarndex
Спасибо, интересно, 5+!
+6
Женька
Наверное, вы имели в виду "Не единым дисплейсментом живы". А капельки зачетные.
+1
alexsimm
Нереальное спасибо!
0
Sasha-GHOST
а почему просто не взять вот эту вашу карту и чере скаттер по ней не бахнуть?
+1
Fixonu4
Присмотритесь к картинке, крупные частицы смотрятся как капли, мелкие как запотевшие участки (или я вижу то, чего нет и мозг докручивает картину...). То есть, уже не просто взять карту и бахнуть по ней скаттером )
0
slam_k
Верно. Именно так и есть
0
Sasha-GHOST
Так на окно эту же карту в преломление бахнуть и будут вам запотевшие участки. Я сразу оговорюсь, что просто спрашиваю будет так же и разница лишь в религии (пфлоу или скаттер) или все таки пфлоу тут кошернее?
0
Sasha-GHOST
или вообще два скаттера бахнуть с мелкой фракцией и с крупной, как с травой делается обычно
+1
slam_k
Ну лично для меня разница есть. Короновский скаттер еще сможет потягаться, но опять же, пфлоу имеет больше возможностей чем скаттер, которые ограничиваются лишь знаниями и фантазией, но для вирея выгоднее использовать Vray instancer, который какраз и работает с пфлоу. Кроме того можно сделать даже анимацию текущих капель при желании, чего скаттером точно не сделаешь. По поводу карт - да можно кинуть карты в рефракцию, в рафнесс, но это будет выглядеть иначе, и не всегда можно получить именно тот результат который хочешь. Я уже писал ниже что у капель есть объем, и задняя поверхность которая преломляет, и странно ожидать полностью похожий эффект если игнорировать эту поверхность. Возможно это сильно заморочено для многих, и не стоит тратить на это время в визуализации интерьера, где это будет излишнем. Но в визуализации продукта, в клозапах - это может выглядеть очень даже вкусно и детально.
0
slam_k
Можно и так. Но будут свои сложности. Смотря чей скаттер использовать еще. Нагрузка на оперативу больше чем у инстансера будет
+1
CGmachete
метод хорош, но слишком сложен, меня хватило на два абзаца а принцип тот же что и у скаттеров, берется мапа и по ней генерятся частицы

по поводу нагрузок давайте тогда результаты сравнительных тестов по разным скаттерам, хотелось бы понять принципиальную разницу.

не совсем понятна задача таких манипуляций с пфлоу, результат заведомо не получится круче чем мапа, если только даст чуть больший объем, но при этом проиграет в разы в детализации.
0
slam_k
Как он может проиграть в детализации если это геометрия ? Кроме того. Не забывайте что капли имеют объем и заднюю поверхность, которая сильно влияет на внешний вид. А задней поверхности мапой не добиться. Не согласен про детализацию. Можно комбинировать это с материалом, например
0
CGmachete
я сужу по картинке ,которую вы даете как пример,
то что я вижу - две фракции капель - большие и маленькие, достаточно однообразные

сделайте клозап- посмотреть детализацию о которой вы говорите.
0
slam_k
Вы прочитайте до конца, там в статье написано сколько там слоев используется. Если бы я хотел удивить кого-то картинкой, я бы выложил это в галерею. Я описал принцип который пригодится многим, вместо скаттера. Этот способ будет интересен в первую очередь тем кто пользуется Vray, т.к Vray instancer очень хорошо работает с теми же прокси, плюс в нем есть эксперементальная функция многопоточности для генерации инстансов. Возможно я и сделаю клозап, но позже.
+1
CGmachete
оу оу, полегче, я как визуализатор верю больше глазам а не тексту,
возможно урок и гениален, но я не увидел этого на картинке.
+1
valdidas
отличный метод! Ранее делал скаттером или через карты. Но не сильно заморачивался
0
shinodem
>Главные преимущества — это рандомизация и детализация:
и два окна с одинаковым узором -_-
0
slam_k
Это тест, вы можете сделать как захотите.
0
ViTcore
кто-то приклеил на окно бусинки
0
Sasha-GHOST
дануне, получилось норм
+1
dontpiter
Геометрия капель не правильная. Сторона прилегающая к поверхности должна иметь форму поверхности. В данном случае быть плоской. А иначе получаются бусинки приклеенные.
0
slam_k
Задняя поверхность капель и есть плоская, лучше присмотритесь. Для этого я и приложил ноду которая выравнивает эту поверхность относительно нормалей окна. Не надо вводить людей в заблуждение. Мало того я еще и описал процесс моделирования в статье, и там написанно что задняя поверхность выравнивается в плоскость. Вы как так сквозь пальцы читаете?
0
rudnikov2006
я очень прошу, пересохраните пожалуйста ноду с выраниванием в 16 макс по возможности. Спасибо заранее.
+1
slam_k
в личку отписал
0
Bruce
А можно мне тоже в 16 пожалуйста?
+1
rudnikov2006
Спасибо, у меня все получилось. Единственное - создавалось еще много частиц на самой иконке (их убил в position icon в самом партикле). И почему-то частицы создаются по всем полигонам стекла, а хотелось бы чтобы создавались только по одному наружному полигону. Не знаю как это исправить. Ну знаю конечно - можно просто отдетачить один полигон от стекла и сделать только по нему распределение, но может можно как-то без этого обойтись? И еще хочется все-таки пояснение как самому создавать и настраивать align particles. Я его буду ждать :) Но все равно спасибо, как один из инструментов создания капель и в целом для расширения знаний функционала 3дмакса - очень полезный урок.
+1
slam_k
Так для этого маскирование и нужно. Там в уроке написано про материал, маски для позиционирования партиклов в нужных местах как раз и нужны. Поэтому не требуется детачить полигоны. Для того чтоб партиклы не появлялись на иконке нужно включить лок он обжект, и удаление частиц в ненужных местах - это в статье тоже описано. По поводу алайна - этот урок в сети уже где-то был.
+1
rudnikov2006
"Для того чтоб партиклы не появлялись на иконке нужно включить лок он обжект, и удаление частиц в ненужных местах" - вот это не убирает объекты со значка почему-то.
"Там в уроке написано про материал, маски для позиционирования партиклов в нужных местах как раз и нужны" - не могу сообразить как сделать так чтобы на разных гранях были разные маски
если только делать развертку стекла и черный цвет в ней на остальные полигоны
http://my.jetscreenshot.com/demo/20200501-l1xj-770kb 

Все проблемы решены, спасибо!

Так накиньте на второй плейн такой же мульти материал, только во втором айди сделайте другую маску у второго материала. Либо отдетачьте вторую плоскость и ей отдельно сделайте материал. По поводу лишних частиц, попробуйте поставить начало рождения частиц - 4, а конец -2 допустим. Иногда глючит.
+1
hovantai.324
в действительно красивой , слишком хорошо