Original size 600x847

VFX R&D | Грум под водой & Dry-for-wet

PROTECT STATUS: not protected

В рамках работы с визуальными эффектами в анимационном проекте «Русалка» в Houdini был проведён и разделён на две части R & D, затрагивающий подводные сцены:

— Dry-for-wet техники, не использующие Flip.

— Мокрый грум с применением разных методов.

Dry-for-wet

В кинематографе съёмки под водой традиционно считаются одним из наиболее трудных этапов съёмочного процесса. Физические ограничения, накладываемые самой водой, создают преграды для актёров и технической команды, требуя от них особых навыков и оборудования. Актёры испытывают дискомфорт: холод, давление, ограничения подвижности и сложности с дыханием влияют на качество игры и выражение эмоций. С технической точки зрения, необходимы дорогостоящие и громоздкие приборы: водонепроницаемые камеры, стабилизаторы и многое другое. Все это значительно усложняет процесс съёмок, создавая сложную логистику и увеличивая бюджет. В свете этих проблем современные технологии цифровых эффектов предложили альтернативное решение — Dry-for-wet.

В 3D аналагом Dry-for-wet можно назвать создание сцен с водой без использования традиционной Flip-симуляции. Flip симуляция — наиболее точный метод для создания реалистичных движений воды, брызг и пены. Она оперирует миллионами частиц, что позволяет достичь детальной и натуральной динамики жидкости.

Водная гладь

При создании водной поверхности были рассмотрены:

— Displacement. — Коллизия. — Пена.

— Displacement

Kelvin wakes или Клин Кельвина — это математический термин, обозначающий «форму стационарного волнового возмущения в виде клина, возникающую за движущимся по поверхности воды судном.» (Большая Российская Энциклопедия, 2023)

Метод с деформацией вертексов стал основной ноды Kelvin wakes deformer. Она была создана SideFX целеноправленно для имитации волн от коллизии геометрии с водной поверхностью, где считывается информация от движущейся геометрии и передаётся на грид, деформируя точки.

Original size 800x324

Демонстрация ноды Kelvin_wakes_deformer

Нода Ocean Spectrum используется в паре с нодой Ocean Evaluate. Она берёт грид и создаёт объёмы, они содержат информацию, моделирующую влияние ветра или приливных сил на волны.

Kelvin Wake Deformer вместе с Ocean Spectrum

0

Рендеры

— Коллизия

Для отрабатывания коллизии объекта с гридом в Houdini существует нода Extracttransform. У ноды два входа, один для референсной геометрии, другой для таргетной. Нода считывает трансформации точек одной геометрии и переносит их на другую.

Original size 800x450

Отработка коллизии на волнах

Original size 800x450

Рендер

— Пена

В первую очередь пена от бурного потока воды в CGI — это партиклы. К сожалению, при попытках создать пену используя текстуры и другие приёмы, она оказалась довольно неправдоподобной, поэтому самым лучшим способом для создания пены всё же является Flip.

post

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

Original size 800x450

Контейнер с Flip

Пена создаётся на основе партиклов созданной Flip симуляции. Для пены используются ноды White water source, которая создаёт партиклы в зависимости выбросов жидкости, и White water solver для последующей симуляции.

Original size 800x450

Отработка пены

Original size 800x450

Демонстрация флюида с пеной

Original size 800x450

Рендер

Таким образом без использования Flip симуляции возможно сделать довольно убедительную поверхность воды с коллизией объекта в Houdini за счёт деформации вертексов и шейдера. Однако, нельзя создать сцену с пеной или брызгами без использования Flip.

Подводная сцена

В подводной сцене были рассмотрены:

— Волюметрики. — Каустика.

— Волюметрики

Для анимации снова создаётся грид с использованием нод ocean_spectrum и oceans_preview. В данном случае грид и работает в качестве подвесного «аквариума».

Original size 800x450

Грид с имитацией движения воды

post

Этот грид в дальнейшем используется для анимации волюметриков.

С помощью небольшого количества VEX и ноды Attrbwrangle нужно назначить на точки id, а так же назначить нормалям скорость и задать анимацию.

Нода Attribadjustfloat рандомизирует размер лучей волюметрика.

Original size 800x450

Анимация линий для волюметрика

— Каустика

Нода Light library работает на основе VEX операторов, она трансформирует их в USD примитивы света. Эта нода работает только в LOP контексте.

В Light library подаётся источник света, который и будет являться каустикой.

Original size 800x450

Демонстрация каустики

Original size 800x247

Демонстрация каустики

— Симуляция водорослей и косяка рыб

Original size 800x450
Original size 1920x1080

этапы сборки процедурных водорослей

Loading...

стиллшоты из ролика

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

Груминг в водном контексте

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

Современные инструменты, такие как Maya XGen, Houdini Vellum, Blender и груминг-модули в Unreal Engine, позволяют не только точно имитировать структуру волос, но и управлять их поведением в сложных условиях: от статики или простого ветра до контакта с водой. Однако полная физическая отработка взаимодействия груминга с flip-симуляцией остаётся крайне ресурсоёмкой и редко используется в производстве. Вместо этого художники прибегают к артистичной имитации. Без использования fluid-симуляции воссоздается влияние воды, манипулируемое параметрами шейдинга и динамики.

Таким образом, для продуктивной работы над ВКР мне понадобилось вывести ряд состояний, в которых будут находиться волосы во взаимодействии с жидкостью:

 — полностью находящиеся под водой  — частично погруженные под воду

— Полное погружение

Принцип симуляции

Волосы, находящиеся под водой, всегда стремятся вверх — при этом их движение замедленное и плавное, особенно когда водные потоки находятся в покое. Они выглядят легкими и невесомыми, значит нужно отменить условия привычной гравитации (1>сила по Y>0). За хаотичность и естественность движения отвечают настройки ветра и шума.

Таким образом, две самые важные настройки для имитации подводного движения находятся в разделе Vellum Forces:  — Gravity  — Wind Drag

Original size 960x293

влияние параметров Gravity и Wind Drag на симуляцию

— GRAVITY параметр силы, воссоздающий влияние гравитации на объекте симуляции. Базовым значением по оси Y является -9.8, что по модулю равно ускорению свободного падения на Земле. Отрицательное значение показывает направление по оси — вниз.

В случае с подводной сценой именно этот параметр позволит исказить привычное притяжение волос к земле — задав положительное значение, близкое к относительной невесомости, можно получить нужный эффект легкого стремления гайдов вверх.

— WIND DRAG Параметр, отвечающий за сопротивление в воздушном пространстве. Чем он меньше, тем свободнее и быстрее происходит движение.

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

post

Для имитации влияния подводных потоков можно так же использовать Motion FX Noise на параметр Wind Velocity.

А для рандомизации влияния гравитационных сил следует использовать ноду Noise Field и подключить к Gravity внутри dopnetwork, предварительно разблокировав GuideSim.

Original size 1056x250

Симуляция подводного движения не нуждается в создании сложных сетапов — в основном это импровизированные манипуляции с привычными параметрами.

Иллюзию водных потоков задает сила и вектор ветра, а антигравитация воссоздает эффект выталкивания.

Loading...

— Частичное погружение

Принцип симуляции

До того, пока волосы не окажутся в соприкосновении с поверхностью воды, они будут подвержены одним правилам, после — другим. Поэтому следует разделить путь на два разных Vellum-солвера. Первый работает по стандартным законам гравитации с силой тяжести равной -9.8 по оси Y, второй — с силой 0.8 и дополнительными условиями.

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

post

Далее нужно разблокировать редактирование солвера для сухих волос и найти dopnetwork, в котором создать группу точек «wet» с ограничением по water_box (в разделе bounding с SOP-path).

А в солвере мокрых волос в dopnetwork подключить ноду noise field в gravity.

— ГРУППА WET группа точек, образующаяся при контакте с water_box и позволяющая контролировать смену одних условий симуляции на другие.

— NOISE добавляет хаотичность влияния гравитации на каждый волосок (можно регулировать амплитуду движения).

vellum solver сухие волосы | vellum solver мокрые волосы

Подключая ноду Blend Shapes (в первый вход — сухая симуляция, во второй — мокрая), задаем ее влияние по группе wet и добавляем через «+» новый атрибут влияния. 1 в значении позволяет создать плавный переход от одной геометрии к другой при активации группы wet.

Original size 1920x600

демонстрация blend shapes

Финальным этапом данного сетапа является подключение получившихся симуляций к Vellum Attach Constraints — к ноде, задающей новые правила крепления и фиксации к родительской геометрии.

 — 1 вход — output 1 из Vellum Hair  — 2 вход — output 2 из Vellum Hair  — 3 вход — комплексная симуляция

Loading...

Смена состояния объекта в симуляции гайдов — непростая задача. Она требует комплексного понимания работы в dopnetwork и сильно зависит от постановки камеры, кадрирования и контекста. Потому в основном подобная симуляция будет разниться от задачи к задаче.

VFX R&D | Грум под водой & Dry-for-wet
Project created at 24.12.2025
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more