Создание пивной кружки

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

  Итак, началось у меня всё с вопроса "как сделать пену" и нескольких дней на этап RnD по поиску ответа, но начну я с конца. Быстро пробежимся снизу вверх по картинке, от простого к сложному, так сказать.

  Старые доски и рыба- сканы. Доски- это мой старый, завалявшийся, бесшовный материал. Откровенно говоря, он не выдерживает макро-рендеры и не дотягивает до качества моих современных сканов, но других досок я не сканировал.

  Рыба - упрощенный скан в один оборот моего самодельного поворотного стола, созданного с помощью небольшого 3д принтера, "диска здоровья", Arduino и какой-то матери.

  Про моделлинг тут говорить особо нечего, он грубый, лишь бы похоже было. Все выдавлено с четвертинки цилиндра, однако здесь, как и всегда я старался использовать неразрушающие стек процедурные модификаторы (taper, shell, push, FFD и т.д.), чтобы всегда можно было вернуться назад, сделать правки и не получить по итогу взорванный стакан.

  Материал стекла с каплями - тут классика прямиком из 2008. Два объекта, первый - стекло, второй меш с дисплейсментом. И если первый это default glass, только с лёгким добавлением сальных отпечатков пальцев.

  То для получения текстуры капель уже пришлось подрубать tyflow. Логика тут такая: на плоскости рождается кучка мелких капель, потом несколько больших начинают двигаться по извилистой траектории вниз, "собирая" собой эти капли, попутно оставляя хвост из мелких капель. Не самая удачная реализация...

  Плюсы применения дисплейсмента на модели, а не напрямую такой симуляции из частиц для капель: точная огибающая форма, повторяющая стакан, ну и поликаунт 732 полигона против десятков тысяч. И плюсом небольшая имитация поверхностного натяжения на контурах капель с помощью обычного blur на текстуре. Можно было  сделать дисплейсмент сразу на стекле, но что-то я загнался по поводу  разных IOR и решил вспомнить древний  метод, да и отключать их проще, чем лезть в настройки материала.

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

  И вот, наконец, мы подобрались к тому, с чего пошла вся канитель.

  Захотелось мне детализации повыше, чем default SSS с бампом из интернета. Первая проба материала и...

  Нужны были референсы, фотографии реальных бокалов. Я вышел в интернет с этим вопросом. Гугл мне выдал кучу рендеров, что? Оказалось, что году эдак в 2017 был такой "Beer foam challenge" где немало людей соревновалось в создании такого нетривиального материала как пивная пена. Можно было использовать любой софт, любые способы. Хороший результат получился у единиц. Методы создания, естественно, никто не  показывал. Всё что я понял - горы скаттеров и ощень многа палигонав. Но я то хотел материал, который можно применять на любую геометрию в один клик.

  Сразу были отброшены все варианты с процедурными 2D картами, я прикинул, что никакими Cellular я не сделаю пузырики с нужным расположением как по плоскости так и по высоте. Пришлось немного задействовать физику. Примерно полторы сотни тысяч пузыриков "склеены" между собой связями, из под них всплывают до определенного уровня шарики побольше, расталкивая мелкие.

  Но из всего этого великолепия мне нужны простые 2D текстуры. С помощью стандартной ортографической камеры были отрендерены всего три Ч/Б текстурки: высота (Gradient Ramp в режиме  World Coordinates), окклюзия (VrayDirt), маска по типу пузырьков.  Также были получены текстуры для капель на стекле (не забываем, что очередность написанного обратная)

  В нюке была произведена небольшая корректировка яркостей, нормализация градиента. Нехитрым способом с помощью ноды RotoPaint сделана бесшовность. На такой шумной структуре эта бесшовность особо и не нужна, но пущай будет. Кстати, для любознательных экспериментаторов я приложу эти готовые текстуры архивом .

  Как видно, PopItка сделать всё одним материалом провалилась,тогда я подсмотрел у одного из участников челленджа на артстейшн вариант из двух мешей, один- SSS плотная пена, второй- прозрачная пленка на поверхности.

  И вот я начал экспериментировать, накручивая параметры SSS рефлекшна и рефракшена обоих материалов...

 

Сначала я применял дисплейсмент как на пленку, так и на пену внутри, только в противоположном направлении. Но это вызывало много проблем с нежелательными пересечениями пены со стеклом и с плёнкой. И, как оказалось, обычного Vray бампа на пене было достаточно, а глубину можно имитировать затемнением по карте высот, разницы почти не видно, это упростило настройку и ускорило рендер. 

  Я использовал эти три текстуры  на оба меша, но у внутренней части нужно было добавить фрактальности внутри больших пустот, иначе это как дырки в сыре. Я просто закомпозил эту же текстуру по маске c увеличенной повторяемостью.

  Предварительно запеченная карта Ambient Occlusion неплохо имитирует микроскопическую пену на стыках шариков. В некоторых случаях можно обойтись только ей одной, но это не наш случай.

  Крутил я настройки материалов туда-сюда, пытаясь поймать нужную светотень. И так не нравилось и эдак, но в какой-то момент я понял, что пора остановиться, для RnD проекта по фану потрачено уже много времени. Пену можно делать теперь любую, кофейную, мыльную, уничтожающую CPU или же быстрый simple SSS. Осталось расставить свет и отрендерить. Основной ИС тут мощный направленный прожектор с теплым светом и еще небольшой фонарик прямо позади кружки для чуть более интересных бликов.

  Реднерю финалку как всегда в bucket режиме, 6*6 лучей на пиксель. Материал тяжелый, компик подвисает конкретно. Практически вся пост-обработка началась и закончилась в VFB  (VrayFrameBuffer), а именно схлопывание хайлайтов, контраст, насыщенность, баланс белого, кривые... И только в Nuke была добавлена святая троица - виньетка, аберрации и пленочный шум.

  Архив с пенистыми текстурами:  https://disk.yandex.ru/d/zVGbkFlE6UWCFQ 

  Как-то так...

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

+4
tlp-ab.ru
Подход, как всегда- топ!
+3
Юрий Гагарин
Странно, что не упомянули SD (substance designer), для знающих этот пакет - пожалуй это самый простой вариант создания пивной пены.
Как вариант подобный урок с пеной https://www.youtube.com/watch?v=1Ls6sHs_7Jk )
+10
ViTcore
не приноровился я к нему, ну и эпилептичный таймлапс это не урок))
+1
Arhivariusmeister
Спасибо за урок :)
+1
pow_wow
Автор видео в комментариях прикрепил ссылку на создание материала с объяснением.
+3
gunslinger
За один лишь стиль изложения -10 из 5! А ведь еще и материал отличный. Супер!
+3
ViTcore
спасибо, писать для меня всегда боль и сложнее чем непосредственно CG
0
gunslinger
Вот не надо прибедняться. Отлично и не хуже CG как минимум. Продолжайте)
+3
jjunny
как говорится: "Я в восхищении! Мы в восхищении! Королева в восхищении"", и еще говорится: "Это топчег!"
+2
ComDukat
Супер! Читал, как бестселлер!
+2
bartang
Круто, всегда интересно узнать как решаются подобные задачи, спасибо!
Но я чет запутался:
1) В итоге на пене дисплейс или там реальная геометрия?
2) Там две геометрии для того что ты назвал в начале "foam bubbles", "foam inside" или одна? Или там меш в меше для имитации тонкой пленки? Интересно почему одним мешем не получилось все же?
3) Как используется маска по типу пузырьков?
+1
ViTcore
Только дисплейсмент, два меша один в другом с небольшим зазором (есть картинка где они рядом стоят). Маска мало функций выполняет, используется на глянцевости, где мелкие пузырики блик более размашистый делает и по маске миксуется дисплейс на внутрененней пене (также есть картинка)
+1
niga2323
Было очень очень интересно!
0
ViTcore
Комментарий удален
+2
Lier
Отличный материал,
По самодельному столу для скана бы материал, и вообще твоего рабочего процесса скана. Хотя, если это личное ноу-хау, то может наверное и не стоит, но было бы очень интересно.
+1
ViTcore
да всё как у всех, даже более бичёвно, модель стола разработал сам, конкретно под имеющийся поворотный диск, на котором раньше вручную крутил бубалехи, так что универсальности у него нет. Ну а ардуино там скрипт 10 строк, щелкать релюхой/крутить мотор и так цикл 36 раз.
0
ck_petya
Вращается только камера?
0
ViTcore
вращается только объект на столе
0
ck_petya
Интернет мне врал(( Везде было написано, что надо бегать вокруг объекта, чтобы свет стоял на месте (светотени, всё такое). Агисофт не стал "кушать" такие фото
0
gunslinger
Интернет тебе не врал, просто все зависит от формы и материала объекта, освещения и их взаимодействия. А еще агисофт кривое УГ :)
+2
salat
а как же изменение в тенях и бликах?
0
ViTcore
это не влияет
0
gunslinger
Влияет, к сожалению, но не всегда - см. выше
+2
VictoriaCh2303
Я вот ждала этот урок, особенно про капли и пену - очень круто!)
+2
Night Firefly
Шикарный материал! подача на высоте
+2
sten
супер! спасибо за текстовый вариант
+3
RUSTTM
интересно, можно для капель попробовать мой пресет tyflowhttps://3ddd.ru/blog/post/tyflow_events_condensate_by_rusmam_arazov 
хотя с дисплейсом тоже неплохо
0
ViTcore
очень хорошо, у меня капли были в конце по остаточному принципу, надо было вообще без них
+2
Digital-cat
Здорово получилось!
+1
severyanin
топчик!
+1
supergex
Урок супер! После прочтения - на лице выражение как на последнем рендере!)
+2
SteamPunk
Спасибо за пиво!))
+2
mitternight
мдааа, дядька, мощный ты! :) супер работа!
+1
V.Dolgalev
Невероятно!
+2
Pivotpoint
Ну кто поставил 4 то! Мой 200й голос должен был нарисовать ровно 1000 а не 999 к уроку!
Спасибо за урок! Подобные материалы вдохновляют браться за нетривиальные задачи и изучать 3д!
+1
ViTcore
Ну теперь надо двойку и чтоб 1111
0
Zolty
Сразу видно достаточно опыта для раскрытия такой сложной темы. 5++